2011-01-14 11 views
1

wird angenommen, dass ich eine Anwendung mit der folgenden Struktur:WPF - Bindung an schreibgeschützte Eigenschaft - Benachrichtigung über Änderungen?

(1) ViewModelA

(2) Report

(3) ViewA

Also - lassen Sie mich zunächst die offensichtliche erhalten aus dem Weg. ViewA bindet an ViewModelA.

Jetzt für die nicht so offensichtlich. In ViewModelA wird eine Singleton-Instanz von ReportManager in den Konstruktor von ViewModelA eingefügt. ViewModelA macht eine öffentliche schreibgeschützte Eigenschaft mit dem Namen SomeReport verfügbar. Der Getter für diese Eigenschaft verweist auf eine Eigenschaft aus der Singleton-Instanz von ReportManager. Betrachten Sie das folgende Beispiel unter:

public ISomeViewModel SomeReport 
    { 
     get { return _reportManager.SomeReport; } 
    } 

In ViewA habe ich einen Content deren Inhalt Eigenschaft bindet an die SomeReport Eigenschaft in ViewModelA - und weil die SomeReport Eigenschaft in ViewModelA schreibgeschützt ist, ich habe die Bindung eingerichtet als Einweg.

Alle an der SomeReport-Eigenschaft vorgenommenen Änderungen werden innerhalb der ReportManager-Klasse vorgenommen. Diese Eigenschaft verfügt daher über einen privaten Setter. Das Problem, auf das ich stoße, ist, dass der ContentPresenter in ViewA keine an der SomeReport-Eigenschaft vorgenommenen Änderungen registriert.

Jede Hilfe zu dem, was ich möglicherweise falsch mache, würde geschätzt werden.

Danke.

Antwort