【发布时间】:2017-02-23 15:07:32
【问题描述】:
我正在使用 PRISM 开发复合 WPF 应用程序。我有一个具有父用户控件的窗口。此父用户控件定义了许多子区域。子视图使用 MEF 的“REGIONEXPORT”属性导出自己。每个子视图导入/创建自己的视图模型。父用户控件具有“确定”和“取消”按钮。按“确定”后,我想验证并保存所有子视图模型。如果任何验证失败,则需要知道父用户控件的视图模型。为此,我使用复合命令并将其设置在 RegionContext 中。每个子视图模型都通过区域上下文获取该复合命令,希望您了解基本上我需要在父视图模型和子视图模型之间共享数据。所以我需要在子视图模型中获取 RegionContext,因为我正在导入视图模型构造函数中的 RegionManager(使用导入构造函数)从 RegionManager 我得到区域上下文,然后是命令。
public class FooViewModel
{
[ImportingConstructor]
public FooViewModel(IRegionManager regionManager)
{
var regionContext = regionManager.RegionContext;
}
}
- 在视图模型中设置区域管理器是一种很好的做法吗?
- 这不会破坏 MVVM 吗?我们在视图模型中有视图相关的东西
- 有没有更好的方法在视图模型之间共享数据(事件聚合器除外)
【问题讨论】: