Laden...

WPF - Datenbindung "verschwindet"

Erstellt von Isolde vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.768 Views
Isolde Themenstarter:in
13 Beiträge seit 2012
vor 8 Jahren
WPF - Datenbindung "verschwindet"

Hallo,

ich versuche ein DataSet mit ein paar WPF-Controls zu verbinden. Dazu habe ich das Formular mit zwei Grids bestückt, welche ich MasterGrid und DetailGrid genannt habe. In das MasterGrid habe ich exemplarisch drei Textboxen platziert und in das DetailGrid zwei DataGrids.
Den DataContext habe ich wie folgt zugewiesen:

MasterGrid.DataContext = DsKundenstamm.Tables["Kunden"];
DetailGrid.DataContext = DsKundenstamm;

Die Datenbindung an die Textbox:

Text="{Binding Path=KundenID, UpdateSourceTrigger=PropertyChanged, StringFormat=\{0:000000\}}"

Starte ich das Formular, dann ist alles schick, wie ich es erwartet habe.
Das Problem tritt auf, wenn ich das DataSet DsKundenstamm mittels Clear leere und neu befülle.
Dann liefern beide DataGrids weiterhin die erwarteten Daten, die auch korrekt synchronisiert werden.
Die Textboxen bleiben aber leer. 🙁 Woran kann das liegen?

Danke und Gruß

Danke und Gruß Isolde B.

2.207 Beiträge seit 2011
vor 8 Jahren

Hallo Isolde,

INotifyPropertyChanged geworfen nach dem Clear/Refill?

Gruss

Coffeebean

849 Beiträge seit 2006
vor 8 Jahren

Hallo,

Datasets implementieren nicht das für WPF erforderliche INotifyPropertyChanged /INotifyCollectionCHanged Event. Ein Workaround wäre hier den DataContext erst auf null zu setzten und dann wieder auf das (neu gefüllte) Dataset.

Schöner wäre es wenn Du hier nicht mit DataSets sondern mit Modelklassen die INotifyPropertyChanged und als Listen ObservableCollections verwenden.

Gruß

Isolde Themenstarter:in
13 Beiträge seit 2012
vor 8 Jahren

Hallo unconnected & Coffeebean,

vielen Dank für eure Antworten.
Ich habe jetzt eine Klasse Kunden erstellt und die TextBoxen an deren Eigenschaften gebunden. Die beiden Detailtabellen habe ich vorerst am DataSet belassen.
Funktioniert soweit, hat aber den Schönheitsfehler, dass beim Refill die zweite Detailtabelle leer bleibt und erst Daten anzeigt, wenn die erste Detailtabelle den Focus erhält.

Danke und Gruß Isolde B.

5.299 Beiträge seit 2008
vor 8 Jahren

also bei mir hat das immer problemlos geklappt, mit Datasets - jdfs das ReFill.

Bei Datasets ists aber lausig, die richtigen Bindings zu setzen, weil Intellisense sich tot stellt.

Der frühe Apfel fängt den Wurm.