バインド先のPhotoviewModelを使用してView呼び出しPhotoViewを作成しました。ビューモデルでは、コマンドを次のように定義しています。
//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の1つのインスタンスのボタンをクリックすると、そのインスタンスだけがコマンドを受け取るはずだということです。
実際には、すべてのインスタンスがコマンドを受け取ります。どうすればこれを回避できますか?
サージに関して助けを求めるthnaks