2012-12-19 5 views
7

Ich habe eine Liste des Typs X. X ist eine Property Level Class. Jetzt auf ein Ereignis Ich brauche die CheckedListBox Ausgewählte Elemente in eine andere Liste.So erhalten Sie die CheckedListBox Ausgewählte Elemente in die Liste <X> ...?

Wie bekomme ich den Ausgang ... ?? Der Code habe ich versucht, unten gegeben ...

public void Initialize(List<X> x1) 
{ 
     chkList.DataSource = x1; 
     chkList.DisplayMember = "MeterName"; // MeterName is a property in Class X 
     chkList.ValueMember = "PortNum"; // PortNum is a property in Class X 
} 

private void Click_Event(object sender, EventArgs e) 
{ 

List<X> x2 = new List<X>(); 
// Here I want to get the checkedListBox selected items in x2; 
// How to get it...??? 

} 
+0

Webprojekt? Windows-App? –

+0

Windows app buddy ... –

+0

Mögliches Duplikat von [Eine Item Collection aus einer Listbox in eine generische Liste umwandeln] (http://stackoverflow.com/questions/471595/casting-an-item-collection-from-a-listbox (zu einer generischen Liste) –

Antwort

15

können Sie versuchen, die folgenden

List<X> x2 = chkList.CheckedItems.OfType<X>().ToList(); 

oder als Objekt geworfen

List<object> x2 = chkList.CheckedItems.OfType<object>().ToList(); 
+0

+1 das funktioniert gut, ich sehe keinen Grund, meine foreach basierte Antwort hinzuzufügen :) –

+0

eigentlich verwende ich DevExpress, also wird die obige Lösung dort nicht funktionieren. Aber es gab mir einen Funken, um meine Lösung zu bekommen ... tanx buddy .. –

+0

@RavishankarN Sie können 'Cast' anstelle von' OfType' verwenden, um dies zum Laufen zu bringen. – nawfal

0

bekam ich die Antwort

private void Click_Event(object sender, EventArgs e) 
{ 

List<X> x2 = new List<X>(); 
foreach (X item in chkList.CheckedItems) 
    { 
     x2.Add(item); 
    } 
} 
0

Hier ist ein Weg, der funktioniert r mich:

List<X> x2 = new List<X>(); 
x2 = chkList.CheckedItems.Cast<X>().ToList(); 
0
string[] miList = chkList.CheckedItems.OfType<object>().Select(li => li.ToString()).ToArray(); 
0

Dies ist eine weitere Option

List<X> lst = new List<X>(chkList.CheckedItems.Cast<X>()); 
Verwandte Themen