2017-01-10 1 views
0

So habe ich dieses Listenfeld mit der ItemSource einer ObservableCollection Und sagen wir, ich füge 2 Elemente zur Listbox dann enthält die ObservableCollection 2 Strings richtig?Wie durchlaufe ich alle Elemente in einer Listbox

Jetzt .. Ich versuche, eine MessageBox Popup mit whatevers in der Zeichenfolge zu erstellen. Also sagen wir, ich habe eine Listbox mit 2 Artikeln, Cat & Bob.

Jetzt, wenn ich I-Taste drücke, möchte ich, dass es mich mit zwei messageBoxes, einer sagen Katze & eine Bob sagen. Ich habe versucht, eine foreach-Anweisung zu machen, aber sie möchte nicht ausgeführt werden, wenn ich den Knopf drücke. Jetzt .. Die ObservableCollection ist in 1 Fenster und die Schaltfläche, die ich drücke, ist in einem anderen Fenster, so dass ich nicht sicher bin, ob das einen Unterschied macht.

Also, was ich tat, das ich das andere Fenster wie so an der Spitze dieses einen erklärt ..

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()); 
     } 
    } 

Aber es ist nicht alles ausdrucken.

Wie mache ich die Message zeigen, was in der Listbox1 ist

+0

Ist dies buchstäblich der gesamte Code oder hast du etwas ausgelassen? Wann werden peps.ecipients geladen? –

+1

* "Sagen wir, ich füge 2 Einträge zur Listbox hinzu, dann enthält die ObservableCollection 2 Strings, oder?" * Nein, bitte sagen wir das nicht, oder denken wir gar nicht daran. Um Objekte hinzuzufügen, fügen Sie sie zur ObservableCollection hinzu. Iterieren Sie die Objekte in der ObservableCollection. Wenn Sie Elemente entfernen möchten, entfernen Sie sie aus der beobachtbaren Sammlung. Die ListBox zeigt dem Benutzer nur an, was sich in der ObservableCollection befindet. –

+0

* "möchte nicht ausgeführt werden, wenn ich den Knopf drücke" *: Wie hast du seine Wünsche abgeleitet? –

Antwort

0

Ohne Ihre People Klasse tatsächlich nicht zu sehen, oder ein gutes viele anderen Dinge, und recklessly Annahmen hinsichtlich machen, was Sie versuchen zu erreichen, ich gehe davon aus, dass Ihre People Klasse sieht ungefähr so ​​aus:

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; 
    } 

Dann, nachdem Sie ListBox Ihre aufgefüllt haben, können Sie durch die Inhalte gehen wollen, und sie in einem MessageBox anzuzeigen ....

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); 

Vielleicht etwas wie das ... Wenn das nicht funktioniert, geben Sie uns ein wenig mehr zu arbeiten, und ich werde die Antwort entsprechend ändern.

Verwandte Themen