2016-07-14 25 views
0

假設我有兩個ViewModel,並且它們都使用相同的Model類。如果一個ViewModel更改了Model類中的某個屬性值,我想通知它與第二個ViewModel相同,以便我可以在不刷新它的情況下顯示Views中的更改。如何通過所有ViewModel通知使用MVVM模式的Model類的屬性中的一個ViewModel在UWP中所做的更改

Model<-------->ViewModel 1 
^
    |------------>ViewModel 2 

請幫我,如何實現這個(型號< --->視圖模型(一個或多個)雙向綁定),使用MVVM模式?如果有其他更可行的方式,將會非常感激。

+0

'INotifyPropertyChanged'是一種方法。爲每一種改變的財產分配專門的事件是另一回事。或者一個「改變的東西,你應該刷新」的事件是另一回事。 –

回答

1

我想你誤會了Model<--->ViewModel(s) Two-Way binding,實際上綁定源應該至少是Model的一個實例,DataContext應該是包含這個Model的實例的ViewModel,我們不能直接綁定模型到綁定目標。所以你的設計模式不太對。

我覺得你需要什麼就像在ViewModel1中更改數據時,其他ViewModel可以得到通知和響應,而且你可能已經通過手動刷新來完成這項工作,並且你想找到另一種方法。

這裏是一個簡單的方法來做到這一點在MVVM模式,你可以使用信使MVVM Light,你可以參考SO:Use MVVM Light's Messenger to Pass Values Between View Model這個問題。

相關問題