c# - WPF:如何重新定义 ApplicationCommands 的 CanExecute 方法

标签 c# wpf command

我使用标准的剪切、复制和粘贴命令(它是 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 .

关于c# - WPF:如何重新定义 ApplicationCommands 的 CanExecute 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2530480/

相关文章:

c# - Razor页面如何找到DisplayNameFor中的字段?

c# - 在哪里放置访问数据库的方法

单击时 WPF 弹出窗口不会关闭

c# - 是否可以为绑定(bind)内联定义转换器(没有资源)?

java - ProcessBuilder删除并重命名

c# - 是否可以在存储过程的输出变量中使用 MERGE 语句的 $action?

c# - Asp.Net,从上一页访问变量是一种好方法吗?

c# - 尝试从 ListBox 对象转换为 MyListBox 时出现 invalidcastException : ListBox object in WPF

java - 在命令行中运行 eclipse 项目

linux - 每 2 :30 on every day? 运行一次 cron 作业