命令由所有实例接收,而不是由单个 MVVM 工具包接收



我创建了一个视图调用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的一个实例上的按钮,则只有该实例应接收该命令。

实际上,所有实例都接收该命令。我怎样才能避免这种情况?

寻求帮助问候哔叽

解决,它是在错误的实例上引发

相关内容

  • 没有找到相关文章

最新更新