PRISM 5 - WPF项目上的多个shell

时间:2014-09-28 23:46:22

标签: c# wpf prism

我有一个WPF和PRISM原型。我的项目需要(此时):

  • 登录窗口......
  • 主要窗口(具有菜单和一般信息)
  • 一个动态的表单(我可以同时显示多个表单)...将加载所选菜单的内容(如产品信息/列表)。Like this

我的想法是创造多个贝壳......但我认为那不需要...... 我将需要创建一个包含1个区域的shell ...以及3个具有相应区域(登录,主体和表单)的视图???

如何使用PRISM我可以正确地做到这一点还是PRISM不是这样的?

3 个答案:

答案 0 :(得分:1)

您应该需要一个单独的服务类(DialogService)来启动应用程序中的对话框窗口。应将此服务注入到您的视图模型中。 Dialog Service应该有一个获取视图名称的方法。使用名称解析您的视图,并使用此视图打开您自己的窗口。

以下链接可能会解决您的问题,

http://www.codeproject.com/Articles/269364/MVVM-PRISM-Modal-Windows-by-using-Interaction-Requ

答案 1 :(得分:1)

Prism 5附带了InteractionRequest类,它是混合的一部分,但现在它也可用于棱镜。这允许您添加自定义内容。您可以在以下两个链接中找到更多详细信息。

请查看Prism 5的以下新链接,该链接内置了对交互请求的支持。

http://msdn.microsoft.com/en-us/library/microsoft.practices.prism.interactivity.interactionrequest(v=pandp.50).aspx

Quickstart

基本上prism附带shell类型,bootstrapper实例化它。您需要做的就是设计shell,将动态内容推送到区域,然后相应地更新您的区域内容。

对于对话框,请查看prism5的上述链接。

答案 2 :(得分:1)

使用InteractiveRequest的Prism popupwindow有一些限制,例如无法删除最大化或最小化按钮)。而不是你可以尝试使用

http://blogs.southworks.net/dcherubini/2012/05/24/popupwindowaction-using-custom-views-instead-of-windows-in-wpf-and-prism/

此解决方案的好处是 - 您可以使用自定义弹出窗口,而不仅仅是通知或确认弹出窗口。

此外 - 您可以将信息传递回调用“交互请求”的类。

然后,要创建区域,请查看StockTrader UI

http://msdn.microsoft.com/en-us/library/ff921098%28v=pandp.40%29.aspx