我正在使用 WPF、Prism 和 MVVM 创建一个小型应用程序。有一个控件(加载器),我想在每次执行命令时重用它,并且我想将该用户控件放置在具有一定透明度的某个区域的顶部。即当前模块调用命令所在的区域。
如何在 ViewModel 的某个区域顶部添加此用户控件(这是正确的位置吗?)?
使用 Prism 是正确的,最好的方法是使用regions。
只需在您的视图中创建区域,给它一个唯一的名称。
<ContentControl rgn:RegionManager.RegionName="TopRegion" />
然后,在 ViewModel 中使用RegionManager添加用户控件。
IRegion myRegion = regionManager.Regions["TopRegion"];
myRegion.Add(userControl1);
我还应该指出,由于这是在 MVVM 中,您可能希望使用某种 IoC(例如MEF或 Unity)添加用户控件。