1

我有一个应用程序,到目前为止只有 2 个视图。视图 1 是一个列表,第二个是详细视图(一旦您在视图 1 中选择了一个项目。

我已经在我的 Prism shell 中设置了一个区域,并且可以加载我的模块。我想要的是最初只加载模块 1。当我从 1 中选择了一个项目时,我想导航到 2(然后它会显示在我的 itemscontrol 中(顺便说一下,它是一个选项卡控件)。

我遇到的问题是我要么得到 a) 两个视图最初都显示在我的选项卡控件中。

b) 如果我将视图 b 的模块上的导出属性更改为按需初始化,当我单击导航到视图 b 时,什么也没有发生。

任何帮助将非常感激。谢谢。

4

1 回答 1

0

我通过让所有视图被发现来解决这个问题,但是在视图初始化时,我停用所有视图,接受我感兴趣的视图。当然我正在寻找更好的方法:)

foreach (var view in RegionManager.Regions["RegionFoo"].Views)
{
  if (view.GetType() == initialViewType)
  {
     RegionManager.Regions["RegionFoo"].Activate(view);
  }
  else
  {
     RegionManager.Regions["RegionFoo"].Deactivate(view);
  }
}

在该地区的发现注册视图后,我会这样做。initialViewType 是您希望查找的视图类型。这假设只有一个单例视图。

于 2011-03-28T07:50:09.123 回答