我在WPF应用程序中使用DataGrid来显示歌曲列表,我添加了一个带有播放和删除选项的上下文菜单:
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Command="Play">
</MenuItem>
<Separator />
<MenuItem Command="Delete" Header="_Remove">
</MenuItem>
</ContextMenu>
</DataGrid.ContextMenu>
我为两个选项添加了命令绑定:
<Window.CommandBindings>
<CommandBinding Command="Play" CanExecute="PlayCommand_CanPlay" Executed="PlayCommand_Executed" />
<CommandBinding Command="Delete" CanExecute="DeleteCommand_CanExecute" Executed="DeleteCommand_Executed" />
</Window.CommandBindings>
上下文菜单中的“播放”选项会在选中时执行PlayCommand_Executed
。但是“删除”选项不执行DeleteCommand_Executed
方法。但是,它会从DataGrid中删除所选行。我不清楚为什么Play命令绑定工作正常但删除没有。
我想要的只是显示一个对话框,在delete命令执行之前确认删除操作。有关如何进行的任何建议吗?
以下是DeleteCommand_Executed
方法:
private void DeleteCommand_Executed(object sender, ExecutedRoutedEventArgs e)
{
MessageBoxResult result = MessageBox.Show("Are you sure?",
"Confirmation", MessageBoxButton.YesNo, MessageBoxImage.Question);
if (result == MessageBoxResult.No)
e.Handled = true;
}
程序没有语法错误......这个方法没有被调用。