我有一种情况,我的 View 应该做一些与 UI 相关的事情(例如序列化 UI 布局或 COM 调用,...)我想发送一条消息并从我的 ViewModel 中的 UI 获取该计算。那么我该如何从消息发送中获取输出?
1-使用回调方法作为Message的参数并从 View 中回调它。
2- 在 ViewModel 中放置一个属性并设置此属性以响应 View 中的消息调用。
我更喜欢第一个,对吗?还有其他方法吗?
似乎不清楚,但调用链在 ViewModel 中开始意味着我需要模拟类似于 ViewModel 的函数调用形式的东西来查看并获取此调用的结果。
最佳答案
我会在这里做的很简单:只需从您的 View 中调用您的 ViewModel 的方法。
编辑:
我不是 MVVM 中消息传递的忠实粉丝,我经常更喜欢事件。所以我会使用的简单方法是:
如果您不喜欢事件而更喜欢消息传递,那是一样的:它是回调 vs 公共(public)方法/属性(这里我总是更喜欢方法 vs 属性 setter ,因为我不喜欢在 setter 中添加硬逻辑和异常管理)。
所以要回答这个问题:我会选择更简单的 IMO 的公共(public)方法。
关于c# - 如何从 MVVMLight 中的 ViewModel 中的 View 获取结果(调用链从 ViewModel 开始),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22015119/