1:N Synchronisation mit z.B. je 2x DataGridView, BindingSource und BindingSourceNavigator

17/03/2009 - 16:33 von Christoph Rall | Report spam
Hallo ihr,

wie packe ich sowas in einer WindowsForms Anwendung eigentlich an:

Ich habe z.B. 2 DataGridViews und will eine 1:N Verbindung darstellen:

1 Person (PrimaryKey: PersonID) hat N Tagebucheintràge
1 Tagebucheintrag (PrimaryKey TagebuchID, ForeignKey: PersonID) gehört
zu 1 Person.

Auf dem ersten DatagridView (Person) möchte ich mit einem
BindingSourceNavigator durchklicken können und das zweite (Tagebuch)
DatagridView soll aber immer nur die Datensàtze anzeigen, die auch die
gleiche PersonID haben, jedoch sollen sich auch diese mit einem
BindingSourceNavigator durchklicken lassen.

Wie synchronoisiert man sowas am elegantesten? Natürlich kann z.B.
bindingSourcePerson_CurrentChanged abfangen und dann die 2.
BindingSource manuell so selektieren, dass sie nur die PersonIDs
enthàlt, die das erste DataGridView gerade anzeigt.

Das empfinde ich aber als zu Fuß programmiert, ist einfach unschön:
gibt es da nicht etwas automatischeres, wie synchronisiert man
normalerweise zwei DatagridViews elegant? In Access erledigte man das
zum Beispiel mit einem Hauptformular mit einem Unterformular (und dann
verküpfen mit LinkChildFields (Verküpfen Von), LinkMasterFields
(Verküpfen Nach)).

Man könnte auch das erste DataGridView durch z.B. mehrere Textboxen
ersetzen, die dann durch BindingObjekte mit der BindingSource
verbunden wàren, dann hàtte man eben nur einen Datensatz (1 Person) in
der Ansicht, anstatt viele. Das Problem der Synchronisierung (mit dem
Tagebuch) bleibt aber bestehen.


Bin für alle Hinweise dankbar,
Christoph
 

Lesen sie die antworten

#1 Frank Dzaebel
17/03/2009 - 21:02 | Warnen spam
Hallo Christoph,

Ich habe z.B. 2 DataGridViews und will eine 1:N Verbindung darstellen:



Du meinst höchstwahrscheinlich eine "Master-Detail" Bindung.
.NET macht es Dir hier sehr einfach:

[Master/Detail mit DataSet-Designer]
http://dzaebel.net/MasterDetail.htm

[Gewusst wie: Erstellen eines Master-/Detailformulars mit zwei
DataGridView-Steuerelementen in Windows Forms]
http://msdn.microsoft.com/de-de/lib...c1kx4.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen