PRISM 5-WPF项目上的多个shell

本文关键字:shell 5-WPF 项目 PRISM | 更新日期: 2023-09-27 18:24:49

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

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

我的想法是创建多个外壳。。。但我认为这是不需要的。。。我需要创建一个有1个区域的外壳。。。以及3个具有相应区域的视图(登录、主体和表单)???

如何使用PRISM我可以正确地做到这一点,或者PRISM不适合这种方式?

PRISM 5-WPF项目上的多个shell

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

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

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

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

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

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

快速启动

基本上,棱镜附带了一个shell类型,引导程序会对其进行实例化。你所需要做的就是设计你的shell,以及动态内容是将其推送到区域,然后相应地更新你的区域内容。

对于对话框,请查看棱镜5的上述链接。

使用InteractionRequest的Prism popwindwindow有一些限制,比如不能删除最大化或最小化按钮)。相反,你可以尝试使用

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

这个解决方案的伟大之处在于,您可以使用自定义弹出窗口,而不仅仅是通知或确认弹出窗口。

此外,您可以将信息传递回调用"InteractionRequest"的类。

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

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