说我想向用户显示一些验证错误。在MVVM模式中,我可以有一个绑定(bind)到我的 View 模型上某些属性的标签。但是,如果我想在严格遵守MVVM模式的同时显示一个消息框,该怎么办?我的 View 模型将绑定(bind)到什么,它将如何触发创建/显示消息框?
最佳答案
接口(interface)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注入(inject)WPFMessageBoxService
。在ViewModel中,使用
IMessageBoxService.ShowMessage
显示MessageBox。ShowMessageCommand = new DelegateCommand (
() => messageBoxService.ShowMessage(message, header, MessageType.Information)
);
根据您的需要定制
IMessageBoxService
接口(interface),并选择一个更好的名称。关于c# - 具有MVVM模式的WPF MessageBox?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14297312/