YES / NO MessageBox的WPF服务

时间:2018-06-05 08:09:25

标签: wpf mvvm

参考What exactly are "WPF services"?及其附件https://digitaltapestry.wordpress.com/2009/07/21/services-%E2%80%93-your-viewmodel-death-star/ 使用WPF MVVM应用程序中的服务,我是否可以在 ViewModel 中使用此类服务​​,甚至可以显示带有“否取消”按钮的MessageBox? 如果是,我应该在ViewModel (Boolean Yes=> true No/Cancel => false) (MessageBoxResult)返回whitch数据类型?

1 个答案:

答案 0 :(得分:0)

  

我是否可以在ViewModel中使用此类服务​​,甚至可以使用“是否取消”按钮显示MessageBox

  

如果是,我应该在ViewModel中返回whitch数据类型(Boolean Yes => true否/ Cancel => false)(MessageBoxResult)?

该服务应返回bool?,。e.g。:

public class DisplayMessageService : IDisplayMessage
{
    public bool? ShowDialog(string message)
    {
        MessageBoxResult result = MessageBox.Show(message, "title...", MessageBoxButton.YesNoCancel);
        switch (result)
        {
            case MessageBoxResult.Yes:
                return true;
            case MessageBoxResult.No:
                return false;
            default:
                return null;
        }
    }
}

如果您只是显示MessageBox而没有任何"是"或"否"按钮,你不应该从方法中返回任何东西。