我想执行这样的删除命令:
ApplicationCommands.Delete.Execute(Keyboard.FocusedElement, Keyboard.FocusedElement);
但:
ApplicationCommands.Delete.CanExecute(Keyboard.FocusedElement, Keyboard.FocusedElement)
是假的,所以它不会被执行。
我怎样才能将其更改为真实?
我相信您需要设置CommandBinding
s 来指定调用 Execute 和 CanExecute 函数时会发生什么。
这是一个例子:
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Window.CommandBindings>
<CommandBinding Command="ApplicationCommands.Delete"
Executed="DeleteCommandHandler"
CanExecute="DeleteCanExecuteHandler" />
</Window.CommandBindings>
<StackPanel Name="MainStackPanel">
<Button Command="ApplicationCommands.Delete"
Content="Delete File" />
</StackPanel>
</Window>
该示例来自CommandBinding文档(稍作修改)。