WPF:如何启用命令?

我不知道为什么只有在ListView中选择了一个项目时才启用我的上下文菜单中的添加项目。 有人知道为什么吗?

这是我的XAML代码

                         

窗口的方法是:

 private void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e) { MessageBox.Show("ok"); } private void CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e) { e.CanExecute = true; e.Handled = true; } 

需要关注CommandBinding.CanExecute才能被调用。 由于在ListView选择一个项目会强制焦点转移到ListView ; 评估可以发生。

如果你要放置listView.Focus(); 在您的Window构造函数中,您会注意到CommandBinding.CanExecute现在按预期调用,因此在ListView不包含或选择项目时启用。

将绑定移动到Window仍然需要在Window设置焦点; 通过构造函数中的显式调用或通过其他方式; ex …选择ListView的项目或Window中可以获得焦点的其他控件。