当前位置: 首页 > 编程语言 > C#

如何在MVVM中实现对话框架构分享

时间:2023-04-10 21:32:53 C#

如何在MVVM中实现对话框架构我正在开发一个基于PRISM框架(UnityContainer)的WPF4.0-MVVM应用程序。我想知道在mvvm模式中实现对话框的最佳方式是什么。我计划在我的应用程序中大量使用它,所以我想要一些可重用的东西。由于您使用的是Prism/Unity,因此请为视图模型实施中介模式。在项目中添加对话服务(IDialogService)模块。包含对话框的模块向IDialogService注册它们。不要忘记将DialogServiceModule声明为ModuleDependency。ViewModel现在使用IDialogService来显示所需的对话框。publicinterfaceIDialogService{voidRegisterDialog(stringdialogID,Typetype);布尔?ShowDialog(字符串对话框ID);}publicclassDialogService:IDialogService{privateIUnityContainerm_unityContainer;私有DialogServiceRegistrym_dialogServiceRegistry;公共对话服务(IUnityContainerunityContainer){m_unityContainer=unityContainer;m_dialogServiceRegistry=newDialogServiceRegistry();}publicvoidRegisterDialog(stringdialogID,Typetype){m_dialogServiceRegistry.RegisterDialog(dialogID,type);公共布尔?ShowDialog(stringdialogID){Typetype=m_dialogServiceRegistry[dialogID];Windowwindow=m_unityContainer.Resolve(type)asWindow;布尔?dialogResult=window.ShowDialog();返回对话框结果;如果在视图中使用ViewModel事件和处理程序,请使用Wea??kEventHandler模式来消除潜在的资源泄漏。此外,多个视图可以附加到同一个ViewModel。我使用一个ViewModel->一个视图来处理项目。还有一个ViewModel->多个视图。做出设计决策时要考虑的事项。您可能会发现这篇关于MVVM对话框的文章很有用:http://www.codeproject.com/Articles/36745/Showing-Dialogs-When-Using-the-MVVM-Pattern我在需要获取用户信息时创建了ViewModel事件。然后由View决定如何提供它。这确实意味着文件背后的代码会得到事件处理程序,真正的MVVM高手会不寒而栗...详细了解C#学习教程,希望大家多多关注——本文收集自网络,非原创代表一个位置。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: