Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
WPF - Datenbindung "verschwindet"
Isolde
myCSharp.de - Member

Avatar #avatar-3390.jpg


Dabei seit:
Beiträge: 14

Themenstarter:

WPF - Datenbindung "verschwindet"

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2461
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

Hallo Isolde,

INotifyPropertyChanged geworfen nach dem Clear/Refill?

Gruss

Coffeebean
private Nachricht | Beiträge des Benutzers
unconnected
myCSharp.de - Member

Avatar #avatar-3200.jpg


Dabei seit:
Beiträge: 862
Herkunft: Oerlinghausen/NRW

beantworten | zitieren | melden

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ß
private Nachricht | Beiträge des Benutzers
Isolde
myCSharp.de - Member

Avatar #avatar-3390.jpg


Dabei seit:
Beiträge: 14

Themenstarter:

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
ErfinderDesRades
myCSharp.de - Experte

Avatar #avatar-3151.jpg


Dabei seit:
Beiträge: 5409

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von ErfinderDesRades am .
Attachments
Der frühe Apfel fängt den Wurm.
private Nachricht | Beiträge des Benutzers