Values von selektierten Einträgen einer Listbox ermitteln
-
Ich habe vor Tagen schon in einem anderen Forum gepostet, leider noch keine Antwort erhalten, deshalb versuche ich es hier mal -)
Wenn ich eine MultiSelection-Listbox mit einer Datenquelle verbunden habe:
System.Windows.Forms.ListBox lbPlatforms; lbPlatforms.DataSource = Platform.SortByName(Platform.All); lbPlatforms.SelectionMode = SelectionMode.MultiExtended; // oder MultiSimple lbPlatforms.FormattingEnabled = true; lbPlatforms.DisplayMember = "Name"; lbPlatforms.ValueMember = "Id";
Wie komme ich jetzt an die Values aller selektierten Einträge, d.h. ich benötige jetzt die Ids der Plattformen???
Mittels "lbPlatforms.SelectedValue" komme ich ja nur an einen Eintrag (bei einer SingleSelection-Listbox).
-
http://msdn2.microsoft.com/en-us/library/system.windows.forms.listbox.aspx
http://msdn2.microsoft.com/en-us/library/system.windows.forms.listbox.selecteditems.aspxSimon
-
Ja, das weiß ich wohl, aber damit bekomme ich doch nur ein Objekt?
Oder kann ich dann einfach das Objekt "SelectedItems[x]" in den Typen "Platform" casten? (Platform.All liefert mir List<Platform>)?
Dann wäre es ja ganz einfach...
Ich dachte immer, es müßte ein Property "SelectedValues" o.ä. geben.
Leider kann ich es erst Montag wieder auf der Arbeit ausprobieren.
Aber wenn es so funktioniert, dann auf jeden Fall danke schonmal.
-
ListBox.SelectedObjectCollection socTest = listBox1.SelectedItems; for( int i = 0; i < socTest.Count; i++ ) { MessageBox.Show( socTest[ i ].ToString( ) ); }
-
Ellek, das weiß ich ja, aber ich wollte ja an die Values (Ids) herankommen.
Aber es hat so geklappt, wie ich es vermutet habe:for(int i = 0; i < lbPlatforms.SelectedItems.Count; i++) { Platform platform = lbPlatforms.SelectedItems[i] as Platform; if(platform != null) { int nId = platform.Id; // ... } }
Auf den Null-Check kann man verzichten, wenn man sich sicher ist...
-
all.txt;66;66
-
pharmacy;
-
pharmacy;
-
pharmacy;
-
pharmacy;
-
kurz und knapp
foreach(ListBoxItem item in listBox1.SelectedItems) string value = item.ToString;
-
Abgesehen davon das der Beitrag von März stammt:
Oder kann ich dann einfach das Objekt "SelectedItems[x]" in den Typen "Platform"
Und jetzt schau Dir noch mal Deine Lösung an.
-
pharmacy;
-
pharmacy;