gpt4 book ai didi

c# - 如何从 MVVMLight 中的 ViewModel 中的 View 获取结果(调用链从 ViewModel 开始)

转载 作者:行者123 更新时间:2023-12-03 10:59:24 25 4
gpt4 key购买 nike

我有一种情况,我的 View 应该做一些与 UI 相关的事情(例如序列化 UI 布局或 COM 调用,...)我想发送一条消息并从我的 ViewModel 中的 UI 获取该计算。那么我该如何从消息发送中获取输出?

1-使用回调方法作为Message的参数并从 View 中回调它。

2- 在 ViewModel 中放置一个属性并设置此属性以响应 View 中的消息调用。

我更喜欢第一个,对吗?还有其他方法吗?

似乎不清楚,但调用链在 ViewModel 中开始意味着我需要模拟类似于 ViewModel 的函数调用形式的东西来查看并获取此调用的结果。

最佳答案

我会在这里做的很简单:只需从您的 View 中调用您的 ViewModel 的方法。

编辑:

我不是 MVVM 中消息传递的忠实粉丝,我经常更喜欢事件。所以我会使用的简单方法是:

  • ViewModel 公开了一个公共(public)事件。
  • View 将处理程序附加到 ViewModel 的事件。
  • ViewModel 引发事件
  • View 执行处理程序(代码隐藏)和:
  • 调用 ViewModel 的公共(public)方法
  • 调用事件处理程序的 EventArgs 参数中包含的回调

  • 如果您不喜欢事件而更喜欢消息传递,那是一样的:它是回调 vs 公共(public)方法/属性(这里我总是更喜欢方法 vs 属性 setter ,因为我不喜欢在 setter 中添加硬逻辑和异常管理)。

    所以要回答这个问题:我会选择更简单的 IMO 的公共(public)方法。

    关于c# - 如何从 MVVMLight 中的 ViewModel 中的 View 获取结果(调用链从 ViewModel 开始),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22015119/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com