【发布时间】:2015-05-28 02:10:02
【问题描述】:
我正在尝试使用 MVVM 设计开发一个 WPF 程序,它有两个控件:浏览器和文本框。
我想要两个 ViewModel,一个用于浏览器的逻辑,另一个用于文本框。我环顾四周,但 RelayCommand 似乎仅用于将视图的命令绑定到 ViewModel,而在我的代码中,我还需要两个 ViewModel 相互通信。例如,我正在考虑的机制是当浏览器加载网页时,浏览器 ViewModel 提取 HTML 代码,然后对代码进行一些处理/格式化,一旦完成,它会将代码分配给浏览器 ViewModel 中的属性并引发事件。完成此操作后,文本框 ViewModel 将侦听来自浏览器 ViewModel(或任何其他 ViewModel)的事件并将文本分配为文本框的内容。
有没有办法实现这一点,或者是拥有一个包含两个子 ViewModel 的父 ViewModel 的唯一方法?
谢谢
【问题讨论】:
-
我敦促您使用 Caliburn micro 而不是 Prism 。 Prism 可以吸收。使用 caliburn,您可以使用一些需要学习的强大功能,但文档不会那么长。