WPF使用MVVM设计模式 问题

学习了下相关知识,知道view做展示,数据绑定;viewmodel做命令提供,绑定的数据model做业务逻辑大概流程是view生成命令然后通知viewmodel,view... 学习了下相关知识,知道
view做展示,数据绑定;
viewmodel做命令提供,绑定的数据
model做业务逻辑

大概流程是view生成命令然后通知viewmodel,view分配给model处理后,修改相关数据,然后因为数据后view绑定,所以自动修改ui界面。
现在有个问题,比如我点击页面A一个按钮,需要跳转到页面B,同时页面B一展示就需要数据支持。那么这个跳转到下个页面的代码,是写在view呢,还是写在viewmodel。大概怎么写。

求高手解答给小弟,有demo,小弟额外加100分。。。邮箱是914371502@qq.com
展开
 我来答
旁笑槐NH
2012-07-22 · TA获得超过2545个赞
知道大有可为答主
回答量:2686
采纳率:0%
帮助的人:2875万
展开全部
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的业务逻辑即可。
peter56688
2012-07-20 · TA获得超过168个赞
知道小有建树答主
回答量:241
采纳率:0%
帮助的人:162万
展开全部
应该写在view里,可以使用消息订制,然后由viewmodel发送消息给view。
prism比较大,可以使用mvvmlight,轻型的,或者自己实现类似的

参考资料: http://www.galasoft.ch/mvvm/

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ccb7aea
2012-07-20
知道答主
回答量:62
采纳率:0%
帮助的人:20.3万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式