c# - 从另一个 View 模型更新 View 模型

标签 c# wpf mvvm viewmodel

我有两个 ViewModel,一个附加到主窗口,另一个附加到通过单击主窗口上的按钮打开的子窗口。子窗口包含项目列表,我想选择一个项目并通过更新主窗口 View 模型将其显示在主窗口中。完成此任务的最佳方法是什么。谢谢!

最佳答案

有很多方法可以做到这一点。

  • 将对主/父 View 模型的引用传递给 subview 模型,并让 subview 模型调用主视图模型。

  • 让 subview 模型触发父订阅的事件。

  • 使用信使/调解器在两者之​​间进行通信。 parent 订阅, child 发布消息。这提供了松耦合。

  • 将主视图模型设置为全局服务。以某种方式注册它。让 child 查找服务(需要全局服务是一个很常见的问题),然后在全局/通用接口(interface)上调用一些东西。

根据我的经验,最简单的方法是#2。在 subview 模型上定义一个事件。 parent 将不得不查找 child (我不知道它是否包含它或您的 View 模型是如何构建的)并订阅该事件。

关于c# - 从另一个 View 模型更新 View 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5732745/

相关文章:

c# - WPF 在文本框上激活绑定(bind) OnTextInput

wpf - mvvm light icleanup 和 messenger 在 VB.NET 中注销

c# - 在 C# 中调整单色图像的大小

c# - 无法使用 LINQPad 4 更新行

c# - 多个多对多关系 Entity Framework

c# - MVVM 绑定(bind)问题 - 另一个菜鸟问题

c# - 在 WPF C# 中填充 ComboBox 项

c# - SSAS 与 C# 中的 XMLA 同步 - 使用 SQL 2017 中断

c# - 如何在 WPF 中的特定位置添加菜单项?

c# - 当我尝试在 MVVM WPF 中使用命令修改对象时,为什么在 View 模型中出现空错误?