保持所有UI逻辑不在ViewModel中?

时间:2013-03-08 03:11:23

标签: view windows-8 model viewmodel mvvm-light

我对MVVM很陌生,我很好奇,可以将所有UI特定的东西保留在ViewModel之外,从而使我的viewmodel可以跨项目移植吗?例如,假设我想稍后将我的应用程序从Windows Phone 8移植到Windows 8.我可以轻松地拖动我的viewmodel和model,然后设计一个连接到viewmodel的新视图。如果是这样,我应该注意哪些实践,以使我的viewmodel尽可能便携?

1 个答案:

答案 0 :(得分:0)

您可以将它们构建为自己的程序集,而不是拖动模型和VM,只需在多个项目中重复使用程序集即可。

通过实施IPropertyNotifyChanged,完全可以将您的VM与您的视图区分开来。这样,您的VM的属性可以检查它们是否被更改,并且可以通知订阅者PropertyChanged事件已发生变化。这样,您的视图可以订阅对象上的PropertyChanged事件,并且可以在需要更新UI以反映对象的一个​​或多个属性的更改值时执行操作。

请务必完成IPropertyNotifyChanged文档末尾的示例,以说明其工作原理。