Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用PRISM具有多个活动实例_C#_Wpf_Prism_Multiple Instances - Fatal编程技术网

C# 使用PRISM具有多个活动实例

C# 使用PRISM具有多个活动实例,c#,wpf,prism,multiple-instances,C#,Wpf,Prism,Multiple Instances,我在PRISM,C#中有一个应用程序,我想知道是否可以执行以下操作: 我的应用程序底部有一个按钮栏,它充当我的导航区域。用户可以点击按钮A,弹出模块A的仪表板 用户单击仪表板中的某个项目,然后进入该项目的详细信息页面。他正在努力做一些改变,但在这个过程中他收到了一封电子邮件 他打开模块B并在模块B中创建一个新项 -->此时有两个实例打开,模块A的详细信息页面和模块B的添加页面。我希望用户也能直观地了解这一点,因为模块A的按钮上方会有一个“1” 问题是,(如何)我可以用棱镜做到这一点 tl;博士P

我在PRISM,C#中有一个应用程序,我想知道是否可以执行以下操作:

我的应用程序底部有一个按钮栏,它充当我的导航区域。用户可以点击按钮A,弹出模块A的仪表板

用户单击仪表板中的某个项目,然后进入该项目的详细信息页面。他正在努力做一些改变,但在这个过程中他收到了一封电子邮件

他打开模块B并在模块B中创建一个新项

-->此时有两个实例打开,模块A的详细信息页面和模块B的添加页面。我希望用户也能直观地了解这一点,因为模块A的按钮上方会有一个“1”

问题是,(如何)我可以用棱镜做到这一点

tl;博士PRISM是否支持多实例视图?(这是打开视图的“管理”,因此您可以选择打开哪个视图。)

我试着用谷歌搜索这个,但找不到任何与之相关的东西(可能是因为我不知道如何称呼它,所以我无法搜索它:/)


非常感谢您提供的任何信息。

这里有一个关于如何在Prism中实现这一点的简短介绍,包括指向MSDN中一个非常有用的部分的链接:

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

添加到Jon的帖子中

您可能需要使用TabControl。如果您将PRISM的区域置于TABCOntrol中,您将能够将所有实例视为选项卡

您可以在这里看到带有一些XAML的体面示例,了解如何关闭选项卡:

因此,在“内部”中,如果默认情况下使用MEF导出,PRISM将具有单例视图/视图模型。如果将这些零件导出为非共享,PRISM将在容器(MEF或Unity)中保留同一视图的多个版本。但是,使用按钮,您将无法获得特定的实例

因此,使用TabControl作为容器,如下所示:


或者,您也可以编写自己的区域适配器并在其中跟踪实例。

嗨,Jon,谢谢您的链接,我一定要查看它!