2011-01-21 22 views
0

2つのコンボボックス(ドロップダウンリストスタイル)を持つWindowsフォームアプリケーションがあります。最初のコンボボックスはそうのように、AppTableオブジェクトのリストからデータを取得します。別のドロップダウンリストの選択項目が変更されたときに、ドロップダウンリストで選択した項目を変更する必要があります。

this.cbxSelectName.SelectedIndexChanged +=new EventHandler(cbxSelectName_SelectedIndexChanged); 

そして最後に:私は、このドロップダウンリストで選択した項目が変更されたときのトリガーを設定している

foreach (AppTable table in appTableList) 
      cbxSelectName.Items.Add(table.App); 

トリガが呼び出すメソッドの定義を次に示します。選択した項目が変更されると、tbxNewWikiWordテキストボックスの値が変更されます。しかし、同じことが2番目のドロップダウンリスト(cbxUpdateAppType)に発生しません:

private void cbxSelectName_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     foreach (AppTable table in appTableList) 
     { 
      if (table.App == cbxSelectName.SelectedItem.ToString()) 
      { 
       this.tbxNewWikiWord.Text = table.WikiWord; 
       this.cbxUpdateAppType.SelectedItem = table.Type; 
       break; 
      } 
     } 

    } 

これはAppTableがどのように見えるかです:

class AppTable 
{ 
    public string App { get; set; } 
    public string Type { get; set; } 
    public string WikiWord { get; set; } 

} 

私は何かが足りないのですか?

+1

'cbxUpdateAppType'を' table.Type'に表示される内容で埋めていますか? 'cbxUpdateAppType'を埋め込むコードを投稿してください。 – shahkalpesh

+0

table.Typeには、Service、Task、Applicationの3つの値のいずれかを格納できます。しかし、私はcbxUpdateAppTypeをこれらの3つの値で手動で埋めます。なぜなら、ループでtable.Typeから入力すると、同じ値が複数回取得されるからです。 – xbonez

答えて

0

AppTableオブジェクトからcbxUpdateAppTypeに値を追加すると修正されました。どちらの場合でも、なぜ私がストリングを追加したのかは分かりません。

重複がないかどうかを確認するだけで、ドロップダウンボックスに同じ値のインスタンスが複数あることはありません。

foreach (AppTable table in appTableList) 
     { 
      if (!cbxUpdateAppType.Items.Contains(table.Type)) 
       cbxUpdateAppType.Items.Add(table.Type); 
     } 
関連する問題