Update Binding von Nested Properties eines DataTable bzw. DataRow Objekts

  • WPF
  • .NET 7–8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Update Binding von Nested Properties eines DataTable bzw. DataRow Objekts

    Hi!

    Ich recheriere dazu schon eine ganze Weile und finde dazu nicht wirklich Informationen.
    Ich möchte auf ein Property eines Parent Objekts (eine TableRow in einem DataTable eines DataSets!) eine Binding erstellen und diese auch automatisch updaten lassen.

    Kurz zur Veranschaulichung ein kleines Beispiel eines simplen DataSets:

    Quellcode

    1. DataSet:
    2. - DataTable "Car"
    3. # id
    4. # name
    5. # ManufacturerRow
    6. - DataTable "Manufacturer"
    7. # id
    8. # name
    9. One-To-Many Verbindung vom "Manufacturer" -> "Car" Table via ManufacturerRow (autogeneriert durch das DataSet .xsd)


    Wenn ich jetzt in einem DataGrid die ItemsSource auf den DataTable "Car" setzte und folgendes mache:

    Quellcode

    1. <DataGridTextColumn Header="Manufacturer" Binding="{Binding Row.ManufacturerRow.name}"/>


    Zeigt er mir wunderbar den Namen des Herstellers an. Wenn sich aber der Name des Herstellers ändert wird die Spalte der Zeile aber __nicht__ geupdated!
    Bei den direkten "Car" Properties funktioniert das einwandfrei.

    Quellcode

    1. UpdateSourceTrigger=PropertyChanged


    Hat leider keine Besserung ergeben. :(

    Wie erreiche ich es, das das Property geupdated wird, sobald es sich ändert?

    Vielen Dank!

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „asuryan“ ()

    du kannst in Car eine berechnete Spalte anlegen, die den Manufactorer-Name anzeigt.
    gugge DataExpressions: Filter und berechnete Spalten im Dataset

    Insgesamt kooperiert Wpf nicht gut mit Datasets - es gibt keine vernünftige Intellisense, und jetzt dieser Mist, dass eine DataRow kein PropertyChanged feuert.
    Vielen Dank für Deinen Vorschlag bzw. Rückmeldung!

    Ich bin eigentlich großer Fan von DataSets im Normalfall aber das wäre ein Feature, dass wirklich nochmal nützlich wäre. Ich kann/könnte das ständig gebrauchen...

    Die DataExpressions kannte ich so noch nicht! Evtl. eine Lösung. Super auch das Feature, dass man tabellenübergreifend auf Werte zugreifen kann. Das beißt sich leider ein bisschen mit meinem eigenene SQLite ORM dass auf Grundlage der Spalten im DataSet mit der Datenbank interagiert. Eine Spalte, die es eigentlich nicht in der DB gibt, könnte zu Verwirrungen führen... wobei, man könnte die Spalte ja ignorieren, wenn eine Expression gesetzt ist?! Muss ich gucken.

    Jedenfalls schade, dann scheint das nicht ohne Weiteres möglich zu sein. :(

    Danke nochmal!

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „asuryan“ ()

    asuryan schrieb:

    eigenene SQLite ORM
    Ein ORM für Datasets?
    Sowas erledigen doch eigentlich DataAdapter, also bei SqLite der SqliteDbAdapter (oder heisst so ähnlich).
    Guggemol Dataset->Db (DbPersistance)

    Aber Sqlite finde ich eh komisch. Da hat man alle Daten in einer Datei und nu kann das Dataset damit kommunizieren.
    Ja, aber da kann man das Dataset auch gleich als Datei abspeichern und einlesen (Dts.WriteXml/.ReadXml).