C# 如何在wpf mvvm应用程序中显示消息框?

C# 如何在wpf mvvm应用程序中显示消息框?,c#,wpf,mvvm,C#,Wpf,Mvvm,我有一个应用程序,它是用WPF编写的,基于MVVM 在这个应用程序的一部分中,我正在做一个很长的处理,在处理结束时,我想问用户一个问题,例如处理完成,是否要重置数据 我通过显示一个消息框来完成这项工作,但我认为这不是一个好的解决方案,因为我的ViewModel向用户显示了一些东西 实现这种messagebox的最佳方法是什么 我在这里阅读了类似问题的答案,但所有问题都与输入验证有关,而这里的情况并非如此。在我的例子中,我问的问题与数据验证无关,因此数据验证方法在这里不起作用。一种优雅的方式是使用

我有一个应用程序,它是用WPF编写的,基于MVVM

在这个应用程序的一部分中,我正在做一个很长的处理,在处理结束时,我想问用户一个问题,例如处理完成,是否要重置数据

我通过显示一个消息框来完成这项工作,但我认为这不是一个好的解决方案,因为我的ViewModel向用户显示了一些东西

实现这种messagebox的最佳方法是什么


我在这里阅读了类似问题的答案,但所有问题都与输入验证有关,而这里的情况并非如此。在我的例子中,我问的问题与数据验证无关,因此数据验证方法在这里不起作用。

一种优雅的方式是使用在ViewModel中提出并在视图(->交互)中处理的“MessageRequest”或在视图层中定义的交互服务。
因此,ViewModel不会决定消息的显示方式,因为这是UI的一部分。有关一个好的示例,请参阅和以下部分。

如果您的ViewModel与视图位于同一程序集中,这意味着它引用了
System.Windows
,只需
MessageBox.Show()
。保持简单,除非你在做多平台类型的事情,并且需要将其与WPF的特定事项分开和独立。这是否回答了你的问题?