PRISM 5-WPF项目上的多个shell
本文关键字:shell 5-WPF 项目 PRISM | 更新日期: 2023-09-27 18:24:49
我有一个WPF和PRISM原型。我的项目需要(此时):
- 登录窗口
- 主窗口(有菜单和一般信息)
- 一个将是动态的表单(我可以在显示的同时有一个以上的表单)。。。将加载所选菜单选项的内容(如产品信息/列表)
我的想法是创建多个外壳。。。但我认为这是不需要的。。。我需要创建一个有1个区域的外壳。。。以及3个具有相应区域的视图(登录、主体和表单)???
如何使用PRISM我可以正确地做到这一点,或者PRISM不适合这种方式?
您应该需要一个单独的服务类(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