好吧,我在一個綁定到ObservableCollection的XAML文件中有一個ItemsControl。 ObservableCollection可以在視圖模型類(我們稱之爲ViewModelA)上找到,而ObservableCollection中的每個項目都是的另一個視圖模型類(讓我們稱之爲類ViewModelB)。如何通知可觀察集合中某個項目的屬性已更改?
ViewModelA上有一個屬性,如果發生更改,間接將更改在ViewModelB類的許多實例中找到的屬性的值。換句話說,它不會直接訪問ViewModelB並設置其屬性,從而導致INotifyPropertyChange調用,而是下降到模型中,在我的模型中設置一些屬性,並且模型中的更改影響ViewModelB應該顯示的內容風景。
如何通知視圖ViewModelB中的某些內容已更改?
+1;你的回答比問題更清楚,所以我會重申一般情況:通知更改視圖的兩種方法是「INotifyCollectionChanged」和「INotifyPropertyChanged」。但是,如果你的視圖模型是相互依賴的,在你的視圖模型中也使用這些接口,並根據需要冒出通知,這是非常自然的。 –
這裏的關鍵是集合本身沒有改變,所以INotifyCollectionChanged對我沒有好處。但是,我可以在我的模型類上實現INotifyPropertyChanged,所以看起來好像會起作用。謝謝您的幫助! – David