【发布时间】:2016-02-27 12:23:00
【问题描述】:
是否有可能以一种方式“链接”不同 ViewModel 的两个属性,这样当一个属性发生变化时,另一个属性也会发生变化。所以本质上,我希望不同 ViewModel 中的两个属性表现得好像它们是一个。
如果我可以在我的 ViewModels 中执行类似以下的操作,那就太好了:
WhenPropertyChanges(() => SettingX).CopyValueTo(() => ModelView2.SettingX);
示例:在我的设置页面上,当我更改设置时,我希望新值在另一个页面的 ViewModel 中可用。
我知道我可以通过第三层(模型)实现这一点,但感觉有点笨拙,而且我现在解决它的方式感觉不对(触发事件)。
我已经从这个页面实现了以下 MVVM 模式: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 来实现我的目标?
【问题讨论】:
标签: c# xamarin mvvm xamarin.forms viewmodel