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

正在学习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条经验 获得超12个赞

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


查看完整回答
反对 回复 2018-09-23
  • 1 回答
  • 0 关注
  • 716 浏览

添加回答

举报

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