是否有可能以某種方式「鏈接」不同ViewModel的兩個屬性,使得當一個屬性發生更改時,另一個屬性也發生更改。所以實質上,我希望不同ViewModel中的兩個屬性的行爲就像它們一樣。鏈接不同ViewModels中的Xamarin屬性
這將是很好,如果我可以做這樣的事情在我的ViewModels如下:
WhenPropertyChanges(() => SettingX).CopyValueTo(() => ModelView2.SettingX);
舉例:在我的設置頁面,當我更改設置,我希望新的數值爲處於可用另一個頁面的ViewModel。
我知道我能做到這一點與第三層(模型),但感覺有點笨重,我解決它現在的方式感覺不對(觸發事件)。
我已經從此頁實施了以下MVVM-Pattern:http://www.wintellect.com/devcenter/krome/linking-property-change-notifications-in-xamarin-forms-or-wpfsilverlight。據我瞭解,作者說他的代碼使它成爲可能,但不幸的是他沒有說明如何。
我也發現了這篇文章(http://blog.alectucker.com/post/2014/07/26/using-messageingcenter-in-xamarin-forms-for-viewmodel-to-viewmodel-navigation.aspx),但我不一定要導航到其他視圖。不過,也許我可以用這個MessagingCenter來實現我的目標?
好吧,我已經試過了。我喜歡它,但我並不完全滿意我訪問其他ViewModels的方式 - 通過構造函數傳遞它們。如何在ModelView1中獲得ModelView2的參考最佳方式? –
屬性更改可以隨時連線 - 它不必位於構造函數中。我通常只是爲了方便而把它們放在那裏。 –