Ich möchte in einem DataGrid die nicht zugewiesenen Datensätze und in einem weiteren DataGrid die bereits zugewiesenen Datensätze anzeigen. Dazu habe ich eine DataTable mit zwei unterschiedlichen DataViews verwendet. Diese Views habe ich an das jeweilige DataGrid gebunden.
Wenn ich nun einen Datensatz auswähle, soll dieser aus dem ersten DataGrid verschwinden und in dem zweiten angezeigt werden. Das soll auch mit mehreren Datensätzen gleichzeitig funktionieren.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| DataView v1 = new DataView(ds.Documents); DataView v2 = new DataView(ds.Documents);
v1.RowFilter = "Selected = False"; v2.RowFilter = "Selected = True";
da.Fill(ds.Documents); myGrid01.ItemsSource = v1; myGrid02.ItemsSource = v2;
private void Grand(object Sender, RoutedEventArgs e) { int Count = myGrid01.SelectedItems.Count; if (Count > 0) { foreach (DataRowView rc in myGrid01.SelectedItems) { rv.Row.SetField(4,true); } } } |
Leider funktioniert dies nicht. Es wird eine Ausnahme des Types "System.InvalidOperationException" ausgelöst. Die Auflistung wurde geändert. Der Enumerationsvorgang kann möglicherweise nicht ausgeführt werden.
Hat jemand eine Idee, wie ich diese Funktion umsetzen kann?