Ich habe das Gefühl, dass du dich da etwas verrant hast.
Änderungen an Objekten sollten nur dann an den Server und dann an die Clients gesendet werden, wenn die Daten konsistent sind. Du schickst aber jede Teiländerung an die Clients, die ja noch während der Änderung in sich falsch sein kann. Somit bekommt ein Client Daten zu sehen, die unsinnig sein können.
Was DataBinding
zwangsweise mit Grids zu schaffen hat, ist mir auch schleierhaft.
Nachvollziehen kann ich den Wunsch der Push-Funktion an alle Clients, wenn sich Daten geändert haben.
Nehmen wir die Schule als Beispiel:
Ein Schüler soll von Klasse A in Klasse B verlegt werden. Somit habe ich Änderungen an 3 Objekten.
Aber erst wenn alle 3 Objekte im Server abgelegt sind, dann haben alle Clients Zugriff auf konsistente Daten (Transaktion) und sollten dann informiert werden und nicht früher.
Sind die Daten bei Client A und B in Bearbeitung, dann ist es zudem sehr verwirrend für die Anwender, wenn sich wie durch Geisterhand die Daten verändern.
Dieses Kollisions-Management (gleichzeitige Änderung von mehreren Stellen am gleichen Datensatz) kann man unterschiedlich implementieren mit mehr oder weniger Aufwand:
- Letzte Änderung gewinnt (gesamtes Objekt)
- Objekt wird zur Bearbeitung exklusiv gesperrt
- Nur die Änderungen der Objekt-Felder werden übertragen (letzte Änderung gewinnt)
- Der Client bekommt die Fremd-Änderungen während der Bearbeitung beim Speichern angezeigt und kann darauf entsprechend reagieren