C# 在消息之后发送消息
当收到mvvm light消息DialogMessage时,我在主视图Model和view中显示一个对话框。在另一个viewmodel中,我调用了一个服务,命令结果是这样的确认对话框: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
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
});
干杯