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

正在学习MVVM,大家帮忙看看这样写是否符合MVVM的思想?

正在学习MVVM,大家帮忙看看这样写是否符合MVVM的思想?

梵蒂冈之花 2018-09-06 15:11:28
public Page2() { InitializeComponent(); Loaded += (sender, e) => { DataContext = new Page2ViewModel(this); }; }解释一下为什么要这样写。因为是使用MVVM的时候,UI与业务逻辑解耦,此时页面之间通讯的时候就很难获得传递的参数。所以我想到把NavigateContext,NavigateService等属性从View层传入到VM层,这样就可以在VM层使用NavigateContext解析URL中的QueryString,使用NavigateService实现导航,并且获取BackStack集合等等操作。这样得到了View的Page的引用就能很容易在VM层处理导航和获取查询字符串了,但是由于我刚开始学习MVVM,不知道这样会不会违背了MVVM的思想,请各位指正

1 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

楼上没理解我的意思(我没表达清楚)MVVM的思想是View与ViewModel解耦,但是我却传入了View对象的引用,由于需要传入View对象的引用,所以ViewModel的构造将晚于View(所以我在Loaded中才创建ViewModel)。


查看完整回答
反对 回复 2018-09-23

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号