WPF删除命令不接受命令绑定

时间:2014-10-10 22:02:49

标签: c# wpf datagrid

我在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;

}

程序没有语法错误......这个方法没有被调用。

0 个答案:

没有答案