C# 在消息之后发送消息

C# 在消息之后发送消息,c#,wpf,mvvm,mvvm-light,C#,Wpf,Mvvm,Mvvm Light,当收到mvvm light消息DialogMessage时,我在主视图Model和view中显示一个对话框。在另一个viewmodel中,我调用了一个服务,命令结果是这样的确认对话框: DialogMessage message = new DialogMessage(() => { myService.Call(var); // if dialog message is confirmed }, String.Format("Co

当收到mvvm light消息DialogMessage时,我在主视图Model和view中显示一个对话框。在另一个viewmodel中,我调用了一个服务,命令结果是这样的确认对话框:

DialogMessage message = new DialogMessage(() =>
        {
            myService.Call(var); // if dialog message is confirmed

        }, String.Format("Confirm?", value), Visibility.Visible);

Messenger.Default.Send<DialogMessage>(message);
这个很好用。现在,如何在此之后显示另一个DialogMessage,例如,显示带有显示服务myService.Callvar结果的消息的对话框


或者,在另一个变体中,在执行RelayCommand方法之后,如何调用方法?

因此对于初学者,我已经了解到在MVVM中使用对话框消息是不允许的。它打破了MVVM的概念。视图模型不应具有取代视图并显示对话框的直接界面。实际上,正确的方法是为要显示的对话框创建视图模型/视图

也就是说,如果您仍然希望遵循您的设计,那么您所需要做的就是在希望接收消息的任何位置注册消息。因此,根据该消息中封装的内容,您需要:

Messenger.Default.Register<DialogMessage>(
this,
message =>
{
  // Do something
});
干杯