2017-08-14 1 views
0

Ich möchte die ausgewählte Zeile in die Listenansicht daneben verschieben. Die Quellenlistenansicht hat FullRowSelect = true und MultiSelect = false. Die Quellenlistenansicht wird über die Datentabelle aus der Datenbank gefüllt.Listenansicht mit Datentabelle in eine andere Listenansicht verschieben

Listview

Hier ist, was ich bisher haben. Es bewegt nur das ausgewählte Objekt. Ich möchte, dass die gesamte ausgewählte Zeile verschoben wird.

private static void MoveSelectedItems(ListView source, ListView target) 
    { 

     for (int i = 0; i < source.Items.Count; i++) 
     { 
      if (source.Items[i].Selected) 
      { 
       target.Items.Add(source.Items[i]); 

      } 
     } 
    } 

Dies passiert, wenn ich den Code ausführen.

Output

+0

Wie bevölkern Sie den ersten Listenansicht? –

+0

Von Mysql-Datenbank – Alpha

+0

@ mm8 Ich experimentierte an dem Code zu dieser Zeit vergaß, es wieder zu ändern. Mit diesem Code bewegt es immer nur einen Gegenstand, nicht die ganze Reihe. – Alpha

Antwort

1

Erstens, da Sie MultiSelect auf false gesetzt haben, müssen Sie nicht die Schleife müssen alle Einzelteile iterieren.

Zweitens ist das bewegliche Teil einfach. Sie nehmen das ausgewählte Objekt und fügen es in den Zielelementen hinzu. Da Sie sich bewegen und nicht nur kopieren, entfernen wir das Objekt auch aus der Quellenliste.

private static void MoveSelectedItems(ListView source, ListView target) 
{ 
    if(source.SelectedItems.Count > 0) 
    { 
     ListViewItem selectedItem= source.SelectedItems[0]; 
     foreach (var subItem in source.SelectedItems[0].SubItems) 
     { 
      selectedItem.SubItems.Add (subItem); 
     } 
     source.Items.Remove(selectedItem); 
     target.Items.Add(selectedItem); 
    } 
} 
+1

Es bewegt sich immer noch nur 1 des ausgewählten Elements. Bsp. Ich klicke auf die erste Zeile, nur der 1. Punkt der ersten Spalte wird verschoben. Vielen Dank für die Antwort tho – Alpha

+0

Siehe die aktualisierte Antwort – Faisal

+0

Ich habe immer noch das gleiche Problem. Vielleicht ist meine 2. Listenansicht falsch? weil es nicht einmal den Spaltennamen für das Element anzeigt. Nur der Gegenstand. Siehe Bild in Frage, es ist die gleiche Ausgabe mit Ihrem Code. – Alpha

Verwandte Themen