MvvM中这个如何处理

货郎大叔 2019-10-11 10:25:51
MvvM中,ViewModelA中有一个属性a,请问,ViewModelB如何获取ViewModelA中属性a的值。而messager,就是事件的发布和订阅吧,我说的是ViewModelB从ViewModelA中去拿a的值,和发布订阅有区别


...全文
146 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2019-10-14
  • 打赏
  • 举报
回复
有个message压根就不是你认为的什么“A发给B”,同样也不是你认为的“B从A拿” 那个还是正常思维“A不认识B”,“B也不是认识A” B只是通过微博或者其他手段“@全体,我要个1亿” 然后A回复“@B,我有一个亿,过来谈谈”
wanghui0380 2019-10-14
  • 打赏
  • 举报
回复
1年了,还在纠结。也不说那么多东西了,请用正常的思维逻辑去想问题,不要跟着XX园学弯弯绕 正常的思维逻辑“你想找A拿XXX” 那么前提是A必须存在,你能找到A,并且A有XXX,并且A愿意把XXX给你 套用这种逻辑“我想找王思聪拿1个亿”,王思聪存在,我能找到王思聪,王思聪有1亿,并且王思聪愿意把这个1个亿给我 所以别问我们,请问你自己这些前提你卡在哪里了 前面说消息,是因为这种是被动,我不认识王思聪,也不知到他手上是否有1个亿,更不知道他是否愿意给我1个亿。我只能去微博@一下“@全体:谁给我一个亿” 你说这个不是你要的,你要主动去求王大大给你1个亿。那好去找路子勾搭上王大大先,这个别来找我们(为啥别来找我们,因为我们不知道你又去跟XX园那边学了些啥弯弯绕的东西,所以我们不知道那些弯弯绕的玩意里面有没有一个东西,可以查找当前的运行的实例,并且实例名类型是XXX的集合,而且这个集合里有一个实例是你要的,并且这个实例是有1一个亿,并且这个实例愿意把一个亿给你)
bloodish 2019-10-14
  • 打赏
  • 举报
回复
引用 4 楼 货郎大叔 的回复:
[quote=引用 3 楼 bloodish 的回复:] 你如果用MVVM Light,可以用Messenger 在ViewModelA中通过Messenger.Send发送属性a的值 在ViewModelB中订阅a类型的事件,就可以收到A中发送的a值
可是,我说的是ViewModelB从ViewModelA中去"拿",而不是ViewModelA"发送"给ViewModelB[/quote] 不同的ViewModel之间需要解耦. B通过Messager发送一个Notifcation类型的数据请求消息,A收到这个通知后,再发送属性A的值就可以了. 建议你好好看一下MVVM Light中Messager是怎么用的.
CyberLogix 2019-10-13
  • 打赏
  • 举报
回复
MVVM Light 框架很好用
bloodish 2019-10-12
  • 打赏
  • 举报
回复
你如果用MVVM Light,可以用Messenger 在ViewModelA中通过Messenger.Send发送属性a的值 在ViewModelB中订阅a类型的事件,就可以收到A中发送的a值
货郎大叔 2019-10-12
  • 打赏
  • 举报
回复
引用 3 楼 bloodish 的回复:
你如果用MVVM Light,可以用Messenger
在ViewModelA中通过Messenger.Send发送属性a的值
在ViewModelB中订阅a类型的事件,就可以收到A中发送的a值

可是,我说的是ViewModelB从ViewModelA中去"拿",而不是ViewModelA"发送"给ViewModelB
exception92 2019-10-12
  • 打赏
  • 举报
回复
ViewModel单例模式或者将A值放到一个BaseViewModel中。
Dear200892 2019-10-12
  • 打赏
  • 举报
回复
帮你顶上去

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧