为了账号安全,请及时绑定邮箱和手机立即绑定

WPF使用MVVM设计模式 问题

WPF使用MVVM设计模式 问题

HUWWW 2019-02-18 13:05:00
WPF使用MVVM设计模式 问题
查看完整描述

2 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

VIEW:你的界面,就是XAML
VIEWMODEL:界面的业务逻辑,也就是以前的XAML.CS文件
MODEL:你的业务数据模型

根据上面的定义,你应该写在VIEWMODEL上。两个VIEW之间的数据传递在MVVM中一律通过DataContext属性进行,DataContext在MVVM中至关重要!
MVVM的本质就是绑定,只是MVVM要求更严格,最正统的MVVM要求删除XAML的所有控件编程ID。

自己写MVVM非常容易出错,我推荐用simplemvvmtoolkit.(项目在codeplex中)。它有两个比较好用的地方,一个是属性改变通知用lamda表达式,这样当你用重构工具修改模型属性后PropertyChange里的属性名也会跟着改,避免了直接写属性字符串引起的错误。
还一个是它提供一个全局事件总线,DataContext数据交换要求两个ViewModel之间存在引用关系,但实际应用时不总是这样(如日志收集器界面)。通过这玩意可以多个ViewModel订阅事件,任意一个ViewModel发布事件其它订阅事件的ViewModel就能处理事件了。

simplemvvmtoolkit一个小问题就是用它的EventToCommand去绑定UserControl没效果,这一点mvvmlight(也在codeplex里)的RelayCommand就没问题,所以我做项目时一般是这两个库一起用。

通过simplemvvmtoolkit写MVVM你可以先把View画好、写出ViewModel和Model的模型定义,模型绑定全部可通过blend用鼠标完成,不许动用一下键盘。绑定完了只要专心填ViewModel的业务逻辑即可。

查看完整回答
反对 回复 2019-03-04
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

应该写在view里,可以使用消息订制,然后由viewmodel发送消息给view。
prism比较大,可以使用mvvmlight,轻型的,或者自己实现类似的

查看完整回答
反对 回复 2019-03-04
  • 2 回答
  • 0 关注
  • 626 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信