2016-11-28 3 views
0

コンボボックス内の2つのデータを連結する方法は?ここに私のコードは次のとおりです。コンボボックス内の2つのデータのconcatination

private void loadPage(object sender, RoutedEventArgs e) { 
      using (var ctx = new Service()) { 
       try { 
        var query1 = from prod in ctx.products select prod.brand; 
        comboBox1.ItemsSource = query1.ToList(); 
        var query4 = from hosp in ctx.hospitals select hosp.name; 
        comboBox4.ItemsSource = query4.ToList(); 
        var query5 = (from cont in ctx.contactPersons select new { cont.lastName, cont.firstName }).First(); 
        var fName = (query5.lastName + ", " + query5.firstName); 
        comboBox5.ItemsSource = fName.ToList(); 
       } catch { 
        MessageBox.Show("ERROR 404: Database Not Found"); 
       } 
      } 
     } 

私のモックアップデータは、テスト(姓)とテスト(FIRSTNAME)です。

トン

電子

トン

トン

電子

:それはこれを出力するのでちょっと面白いこと

トン何これについて

答えて

2

ItemSource expect an IEnumerableです。したがって、列挙型に渡す必要があります。しかし、あなたが文字列を持ってToList()を呼び出すと、それをcharのリストに変換します。そのため、列挙型を作成し、必要な文字列を追加する必要があります。例えば :

comboBox5.ItemsSource = new List<String>() {fName} 

や、あなたのコード例では、単に「最初の()」ドロップ:

var query5 = ctx.contactPersons.Select(p => p.LastName + ", " + p.FirstName).ToList(); 

、あなたがItemSourceとして設定することができます列挙になってしまいますコンボボックスに一覧に表示される項目は > {FNAME =テスト、テスト} ですが、私はCONCATENATEをしたカントー私のコードを複製し、その上にあなたのソリューションを実装するための

+0

それは私にこの '例外スローされた投げる:EntityFramework.dll'で 'System.NotSupportedException' –

+0

あなたは、アクションを実行するlinqクエリを列挙する必要があります - クエリの最後にToList()を追加する - 私の悪い – barakcaf

+0

ああそれを固定しましたありがとう –

0

void loadPage(object sender, RoutedEventArgs e) { 
      using (var ctx = new Service()) { 
       try { 
        var query1 = from prod in ctx.products select prod.brand; 
        comboBox1.ItemsSource = query1.ToList(); 
        var query4 = from hosp in ctx.hospitals select hosp.name; 
        comboBox4.ItemsSource = query4.ToList(); 
        var query5 = (from cont in ctx.contactPersons select new { fName = cont.lastName + ", " + cont.firstName }); 
        comboBox5.ItemsSource = query5.ToList(); 
       } catch { 
        MessageBox.Show("ERROR 404: Database Not Found"); 
       } 
      } 
     } 

fName.ToList()基本的には(インスタンスの文字列である)fName内の個々の文字のリストを生成しています。

+0

おかげでコンボボックスのためには –

+0

私の人生をより容易になりますしかしw fnameと中括弧を持つ帽子 –

+0

と私もquery1にそれを行うことを計画していますが、そこに2がある場合 –

関連する問題