如何检查视图是否已添加到PRISM中的某个区域?

时间:2010-11-15 08:14:47

标签: wpf prism

我有一个区域,想要检查是否添加了特定的视图类型。我该怎么办?

3 个答案:

答案 0 :(得分:3)

以下代码(使用Linq)应该很有用:

regionManager.Regions["RegionName"].Views.Any(v => v.GetType() == typeof(ViewType));

希望这有帮助,

答案 1 :(得分:1)

您可以使用以下方法检查视图是否已添加到区域。

var regionManager = Get reference to the region manager
bool viewHasBeenAdded = regionManager.Regions["Your region"].GetView("View Name") != null;

这是你想要的还是你想要检查Type而不是View name?

答案 2 :(得分:0)

object obj = System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(cntrlName);

var checkIfAlreadyExists = 
RegionManager.Regions["ApplicationCoreRegion"].Views.Contains(obj);

if (checkIfAlreadyExists) {
    MessageBox.Show("Can not add this, because it is already shown");
} else {
    RegionManager.RegisterViewWithRegion("ApplicationCoreRegion", () => obj);
    RegionManager.Regions["ApplicationCoreRegion"].Activate(obj);
}