gpt4 book ai didi

c# - WPF MessageBox 与 MVVM 模式?

转载 作者:行者123 更新时间:2023-12-02 02:33:26 26 4
gpt4 key购买 nike

假设我想向用户显示一些验证错误。在 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# - WPF MessageBox 与 MVVM 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14297312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com