c# - 在从过程代码调用 Execute 之前,我应该检查 ICommand 的 CanExecute 方法吗?

标签 c# .net wpf icommand routed-commands

在 XAML 中使用 ICommand 时,WPF 使用 CanExecute 方法来启用或禁用与命令关联的控件。但是,如果我从过程代码中调用 Execute 怎么办?我应该先检查 CanExecute 以确保命令可以执行,还是应该 Execute 为我处理此检查?

换句话说,我应该这样做吗:

if (someCommand.CanExecute(parameter, target))
    someCommand.Execute(parameter, target);

或者只是这样:

someCommand.Execute(parameter, target);

最佳答案

良好的风格会决定你应该做前者,首先检查 CanExecute。这将加强适当的分解和实现的一致性。此外,如果您确实想要使用绑定(bind)到按钮的此命令,它将按预期工作。

关于c# - 在从过程代码调用 Execute 之前,我应该检查 ICommand 的 CanExecute 方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6943076/

相关文章:

c# - LINQ 查询根据匹配的另一个表从一个表返回

c# - .net 框架是否支持在不同版本 1.1 和 3.5 之间使用策略文件进行程序集重定向?

.net - Neo4J客户端 : How to create relationships?

c# - 按多列对 C# 列表进行排序

c# - 在没有 .Net 的情况下运行 C# 程序 - 不会重新发布

c# - WPF 图像不会显示 BitmapSource

c# - Guid.NewGuid().ToByteArray() 到字符串(数字)行是否仍然唯一

c# - 拦截鼠标点击

c# - 如何查找 .NET 应用程序在 GC 中花费的时间百分比?

c# - NUnit 测试运行顺序