2017-01-10 18 views
0

リストボックスにObservableCollectionのItemSourceを付けます リストボックスに2つのアイテムを追加し、ObservableCollectionに2つの文字列が含まれているとします。リストボックス内のすべてのアイテムを反復処理する方法

今、文字列内にwhateversを含むメッセージボックスポップアップを作成しようとしています。 リストボックスにCat & Bobという2つのアイテムがあるとしましょう。

私はI buttonを押すと、2つのメッセージボックス、1つはCat &と言っています。 foreachステートメントを実行しようとしましたが、ボタンを押したときに実行したくありません。 今、ObservableCollectionは1つのウィンドウにあり、私が押すボタンは別のウィンドウにありますので、違いがあるかどうかわかりません。

は、だから私は何をしたか..私はそうのように、この1の上部に他のウィンドウを宣言し

People peps = new People(); 


    foreach(string email in peps.recipients) 
    { 
     if (comboBox1.Text == "Email") 
     { 

      MessageBox.Show(peps.Listbox1.Items.ToString()); 
      MessageBox.Show(peps.Listbox1.Items.ToString()); 
     } 
    } 

である。しかし、それは何かをプリントアウトしていません。メッセージボックスは、実際にあなたのPeopleクラス、または良い他の多くのものを見て、そして無謀にあなたが達成しようとしているものへと仮定することなく、listbox1を

+0

これは文字通りコード全体ですか、何かを省略しましたか? peps.recipientsはいつロードされますか? –

+1

* "2つの項目をリストボックスに追加し、ObservableCollectionに2つの文字列が含まれているとしますか?" *いいえ、言わないでください。項目を追加するには、それらをObservableCollectionに追加します。 ObservableCollection内の項目を繰り返し処理します。アイテムを削除する場合は、オブザーバブルコレクションからアイテムを削除します。 ListBoxは、ObservableCollectionの内容をユーザーに表示します。これだけです。 –

+0

*「ボタンを押したときに実行したくない」*:どのようにその欲望を推測しましたか? –

答えて

0

にあるものを示して、私は」I作るにはどうすればよい

あなたのPeopleクラスは、このようなものに見えると仮定しようメートル:

class People 
{ 
    public string m_sName {get; set; } 
    public string m_sEmail {get; set; } 

    public People(){} 
    public People(string name = null, string email = null) 
    { 
     m_sName = name; 
     m_sEmail = email; 
    } 

を次に、あなたのListBoxをいっぱいにした後、あなたが内容を通過したい、とMessageBoxでそれらを表示....

List<people> lstPeeps = new List<people>(); 

foreach (var item in ListBox1.Items) 
{ 
    if (item.Contains("@")) //This checks to see if it's an email address...       
     lstPeeps.Add(item as peep.m_sEmail); 
    else lstPeeps.Add(item as peep.m_sName); 
foreach (var peep in lstPeeps) 
    MessageBox.Show(peep.name + "\t" + peep.email); 

多分、それがうまくいかない場合は、もう少し私たちに働かせてください。私はそれに応じて答えを修正します。

関連する問題