gpt4 book ai didi

WPF MVVM - ViewModel 是否可以相互通信?

转载 作者:行者123 更新时间:2023-12-03 10:21:29 27 4
gpt4 key购买 nike

我正在尝试使用具有两个控件的 MVVM 设计开发 WPF 程序:浏览器和文本框。

我想要两个 ViewModel,一个用于浏览器的逻辑,另一个用于文本框。我环顾四周,但 RelayCommand 似乎仅用于将 View 的命令绑定(bind)到 ViewModel,而在我的代码中,我还需要两个 ViewModel 相互通信。例如,我正在考虑的机制是当浏览器加载网页时,浏览器 ViewModel 提取 HTML 代码,然后对代码进行一些处理/格式化,一旦完成,它会将代码分配给浏览器 ViewModel 中的属性并引发事件。完成后,文本框 ViewModel 将监听来自浏览器 ViewModel(或任何其他 ViewModel)的事件,并将文本分配为文本框的内容。

有没有办法实现这一点,或者是拥有一个包含两个子 ViewModel 的父 ViewModel 的唯一方法?

谢谢

最佳答案

我会使用 Prism.PubSubEvents(nuget package) 使用松散耦合的 pub/syb 事件
https://www.nuget.org/packages/Prism.PubSubEvents/

使用 C#、XAML 和 Prism 在 Windows 应用商店业务应用中的松散耦合组件之间进行通信
https://msdn.microsoft.com/en-us/library/windows/apps/xx130639.aspx

我希望这有帮助。

关于WPF MVVM - ViewModel 是否可以相互通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30496066/

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