我有一个绑定到这样的命令的按钮
<Button Command="{Binding Path=DataContext.MyCommand, ElementName=MyWindow}"
CommandParameter="{Binding}"
PreviewMouseLeftButtonDown="Button_PreviewMouseLeftButtonDown">
我正在使用Button_PreviewMouseLeftButtonDown打开一个包含此代码的确认窗口
private void CopyButton_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if (MessageBox.Show(Resources.Strings.MessageBox,
Resources.Strings.ConfirmOperationMessageBox,
MessageBoxButton.YesNo,
MessageBoxImage.Question,
MessageBoxResult.Yes) != MessageBoxResult.Yes)
{
e.Handled = true;
return;
}
}
这可以很好地停止调用命令,但即使MessageBoxResult为yes,也不会以某种方式调用该命令。
我目前使用的一个简单的工作方法是在PreviewMouseLeftButtonDown事件处理程序中添加一个MyCommand.Execute,但我真的不喜欢在后面的代码中添加对ViewModel的引用。
我想知道是否有一个更好的解决方案,我想要实现的目标,或者是否有人知道为什么事件会停止调用该命令。