2009-03-04 7 views
0

Ich habe zwei DataGridView's über BindingSources und TableAdapaters an eine zugrunde liegende DataSource gebunden.BindingSource's und DataGridView's

Ich habe zwei Modelle; Zeichenfolgen und Tabellen. Tabellen -> [id, Griff, Beschreibung] Strings -> [id, Griff, table_id]

So gibt es eine viele-zu-eins zwischen den Tabellen und Strings.

Was ist der einfachste Weg, um die Auswahl der "Tabellen" DataGridView den Inhalt der "Strings" DataGridView zu filtern?

Ich verstehe die Datenquelle der "Zeichenfolgen" DataGridView kann auf die Bindungsquelle der "Tabellen" DataGridView festgelegt werden, aber dies unterstützt keine Mehrfachauswahl.

In dem Moment, wenn die Auswahl auf der "Tabellen" DataGridView geändert wird, bin ich über die ausgewählten Zeilen und einen string-basierten Filter für die "Strings" DataGridView erstellen, aber ich finde das langsam und unordentlich.

Wer weiß einen schöneren Weg?

Antwort

1

Möglicherweise haben Sie ein anderes Problem mit dem Code, der es langsam macht.

Da es chaotisch ist, verschiebe ich in der Regel einfach Code, mit dem ich Listen von Elementen zu Erweiterungsmethoden über das DataGridView leicht greifen kann. Built-in/simple ist für die einfache Auswahl.

0

Sie können einfach zwei verschiedene BindingSources für jede der Tabellen verwenden. Oder Sie können die erste Tabelle nur mit den Daten füllen, ohne eine BindingSource zu verwenden. Dann können Sie auf das SelectionChanged-Ereignis von der DataGridView reagieren, um den Filter für die BindingSource in Tabelle 2 zu setzen.

Es gibt viele Möglichkeiten: Können Sie selbst neue Wege finden?