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