Csharp/C#教程:带MVVM模式的WPF MessageBox?分享


带MVVM模式的WPF MessageBox?

假设我想向用户显示一些validation错误。 在MVVM模式中,我可以有一个标签绑定到我的viewmodel上的某个属性。 但是,如果我想在严格遵守MVVM模式的同时显示消息框,该怎么办呢? 我的viewmodel会绑定什么,以及它将如何触发创建/显示消息框?

有一个IMessageBoxService接口:

 interface IMessageBoxService { bool ShowMessage(string text, string caption, MessageType messageType); } 

创建WPFMessageBoxService类:

 using System.Windows; class WPFMessageBoxService : IMessageBoxService { bool ShowMessage(string text, string caption, MessageType messageType) { // TODO: Choose MessageBoxButton and MessageBoxImage based on MessageType received MessageBox.Show(text, caption, MessageBoxButton.OK, MessageBoxImage.Information); } } 

ViewModel接受IMessageBoxService作为构造函数参数,并使用DI / IoC注入WPFMessageBoxService

在ViewModel中,使用IMessageBoxService.ShowMessage显示MessageBox。

 ShowMessageCommand = new DelegateCommand ( () => messageBoxService.ShowMessage(message, header, MessageType.Information) ); 

根据您的需求自定义IMessageBoxService接口,并获取更好的名称。

您可以将消息框控件的可见性绑定到validation。

你需要一个Bool To Visibility转换器。

请参阅此处以了解如何使用内置转换器: 将Button的可见性绑定到ViewModel中的bool值

上述就是C#学习教程:带MVVM模式的WPF MessageBox?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1030982.html

(0)
上一篇 2022年1月13日
下一篇 2022年1月13日

精彩推荐