如何使用 MEF 和 WPF 将视图添加到 Prism 中的项目控件

发布于 2024-10-26 17:13:16 字数 303 浏览 5 评论 0原文

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

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

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

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

任何帮助将不胜感激。谢谢。

I have an application which, so far has only 2 views. View 1 is a list and the second is a detail view (once you've selected an item in view 1.

I've set up a region in my Prism shell and can get my modules loaded. What I want is for only module 1 to load initially. When I've selected an item from 1 then I want to navigate to 2 (which would then show up in my itemscontrol (which, by the way, is a tab control).

Problem I have is that I either get a) both views show initially in my tab control.

b) If I change the export attribute on view b's module to initialise on demand, when I click to navigate to view b nothing happens.

Any help would be much appreciated. Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

混吃等死 2024-11-02 17:13:16

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

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

我在视图完成后执行此操作已在该地区登记为发现。 initialViewType 是您希望查找的视图类型。这假设只有一个视图的单例。

I have got around this by letting all the views be discovered but on initalisation of the view I deactivate all views accept the one I'm interested in. Of course I'm looking for a better way :)

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

I do this after the views have been registered for disovery in that region. initialViewType is the type of view you wish to find. This assumes only a singleton of the view.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文