2011-01-15 16 views
0

Es gibt ein Ansichtsmodell, das von einigen verwandten Objekt besteht (Knoten und Linien (, wie es möglich sein kann (synchronisieren anzuzeigen) diese VM in Ansicht und halten Objekt Verbindungen. Ich benutze Datatemplate zu Karte Modell anzuzeigen aber jedes Objekt würde synchronisiert werden (mit starken Bindung) zu seinem verwandten Objekt, sondern wie kann ich verknüpfen (und synchronisieren) dieses Datatemplate erzeugte UI-Element zusammen ich beschreibe Problem aus einem anderen Blickwinkel hier:. Sunchronizing view model and viewWPF Ansichtsmodell nicht aktiv Moderator

Antwort

0

Um Ihre Ansicht zu synchronisieren, sollten Sie Bindungen verwenden, Ihre Bindungsquellen müssen jedoch bestimmte Schnittstellen implementieren oder Abhängigkeitseigenschaften aufweisen zu implementieren INotifyCollectionChanged und für Eigenschaften, die Sie INotifyPropertyChanged verwenden würden, wenn Sie dann die Quelle ändern Ihre Ansicht wird sich auch ändern.

+0

Danke für Ihre Hilfe, aber ich habe das, meine ich INotifyPropertyChanged in View-Modell implementiert. Aber ich möchte generierte UI-Elemente miteinander verknüpfen, da ich sie mit DataTemplate erzeuge. – mehran

0

Neben der Implementierung von INotifyPropertyChanged und der Verwendung von ICollectionChanged (ObservableCollection) und der Bindung an die Ansichten könnten Sie die Implementierung von IEditableObject in Erwägung ziehen, wenn Sie die Bearbeitung der Daten unterstützen möchten.

Diese Schnittstelle ermöglicht das Rückgängigmachen von Bearbeitungsaktionen. Ohne IEditableObject zu implementieren, müssten Sie zum Zurücksetzen der ursprünglichen Werte auf die Datenquelle zurückkehren, wenn Sie die Änderungen abbrechen. Die Schnittstelle wird auch vom DataGrid unterstützt.