我创建了一个 View 调用 PhotoView 与它绑定到的 PhotoviewModel。在视图模型中,我定义了一个命令如下:
//Show info command
ShowInfoCmd = new RelayCommand<RoutedEventArgs>(
(e) =>
{
if (IsInfoOpen)
{
Messenger.Default.Send(new Knauf.Message.HidePhotoInfo(this));
IsInfoOpen = !IsInfoOpen;
}
else
{
Messenger.Default.Send(new Knauf.Message.ShowPhotoInfo(this));
IsInfoOpen = !IsInfoOpen;
}
},
(e) => HasMoreInfo
);
我发送的消息类型是自定义消息。
对于我拥有的每张照片,我都会创建一个新的 PhotoViewModel,然后创建一个 PhotoView 的实例。所以每个 PhotoView 都有一个绑定到 PhotoViewModel 中的 ShowInfoCmd 的按钮。
实际发生的情况是,如果我单击一个 PhotoView 实例上的按钮,则只有该实例应该接收命令。
实际上所有实例都收到命令。我怎样才能避免这种情况?
感谢关于哔叽的帮助