我使用标准的剪切,复制和粘贴命令(属于ApplicationCommands类)。是否可以重新定义CanExecute方法?

这是我的代码:

XAML:

   <Window.CommandBindings>
        <CommandBinding Command="Copy"
                CanExecute="CopyCanExecute" Executed="CopyExecuted"/>
    </Window.CommandBindings>

    <StackPanel>
        <TextBox Name="txt"></TextBox>
        <Button Command="Copy" CommandTarget="{Binding ElementName=txt}">copy</Button>
    </StackPanel>


后台代码:

private void CopyCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
    e.CanExecute = false;
}

private void CopyExecuted(object sender, ExecutedRoutedEventArgs e)
{
    MessageBox.Show("Copy Executed");
}


该按钮的行为仍类似于其命令是标准“复制”命令。

最佳答案

您可以通过CommandBinding执行此操作。本地CommandBinding可以指定CanExecuteHandler。

有关详细信息和工作示例,请参见this blog post

08-26 14:17