2011-10-26 56 views
0

我在PRISM,C#应用程序,我不知道如果我能做到以下几点:拥有多个活动实例与PRISM

我已经在我机应用,它作为我的导航底部的按钮栏区。用户可以点击按钮A,弹出模块A的仪表板。

用户单击仪表板中的某个项目,然后他来到有关该项目的详细信息页面。他正在进行一些更改,但他在此过程中收到一封电子邮件。

他打开模块B,使模块B.新项目

- >有2个实例在那一刻开,模块A的详细信息页面,我想模块B的添加页面用户也可以看到这一点,因为模块A的按钮上方会有一个“1”。

问题是,(我该怎么办)可以用PRISM来做到这一点。

tl; dr; PRISM是否支持多种实例化视图? (这是“管理”开放的意见,所以你可以选择哪个视图打开。)

我试着用谷歌搜索这个,但我找不到任何相关的东西(可能是因为我不知道如何调用这个,所以我不能搜索就可以了:/)

任何信息是非常赞赏,感谢您的时间。

回答

2

下面是关于如何工作出棱镜,包括链接到MSDN的一个令人难以置信的有用的部分很短的介绍:

棱镜具有regions,这是可以承载一个或多个其他控件控制的抽象(你的看法)。每个区域可以添加任意数量的视图,并且每个区域中最多只有一个视图处于活动状态。显示视图的方式(包括活动视图的含义)取决于region adapter,该对象是由Prism根据每个区域的控制器类型自动创建的对象。

+0

嗨,乔恩,感谢您的链接,我绝对会检查出来! –

0

添加到乔恩的职位。

您可能想要使用TabControl。如果您将PRISM的区域放入TABCOntrol中 - 您将能够将所有实例视为选项卡。

你可以看到像样的样品与对此处关闭标签页一些XAML: Menu service in Prism application CAL

因此,在“内部” - PRISM将可以进行单视图/的ViewModels如果你默认使用MEF出口。如果您将这些部件导出为非共享--PRISM将在容器(MEF或Unity)中保留多个相同视图的版本。但是,使用按钮 - 你不会得到特定的实例。

因此,使用TabControl的集装箱像这样: Menu service in Prism application CAL

或者你也可以在那里写自己的区域适配器和跟踪实例。