参考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数据类型?
答案 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
而没有任何"是"或"否"按钮,你不应该从方法中返回任何东西。