似乎MVVM 模式中的XAML 很难弹出消息框。我的客户坚持认为验证标签和颜色对他们不利。他们仍然想要一个消息框。怎么做到的?
我知道我可以在 View 模型中弹出消息框,但它违反了 View 模型的全部目的。我也可以引发错误,并在某些异常处理程序中弹出消息框,但消息框不是异常。它是正常程序流程的一部分。
有没有用 XAML 做的好方法?我的客户喜欢消息框。她不关心 MVVM 模式,她在使用 MVVM 和单元测试之前从未有过任何质量问题。但是现在,她连自己的留言箱都收不到了,所以她不是很开心。
最佳答案
一种可能性是为消息框使用一个接口(interface),例如
public interface IMessageBoxProvider
{
MessageBoxResult Show(string messageBoxText, string caption, MessageBoxButton button, MessageBoxImage icon, MessageBoxResult defaultResult);
}
和一个实现此接口(interface)并使用普通或自定义消息框的包装器类。 在 View 模型中,您可以像这样使用
private IMessageBoxProvider MessageBox { get; set; }
其中 MessageBox 是包装类。所以现在您已经解耦了实际的消息框,因此您可以进行单元测试等等。
关于unit-testing - 如何在 MVVM 中使用消息框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2882529/