手动执行 WPF 路由命令

发布于 2024-07-24 16:11:48 字数 218 浏览 8 评论 0原文

从代码隐藏手动执行自定义 RoatedUICommand 时,如下所示:

MyCommands.MyCommand.Execute(parameter, target)

我是否需要先调用 CanExecute 方法,还是已经在 Execute 中完成了此操作代码>方法?

When executing a custom RoutedUICommand manually from code-behind, like this:

MyCommands.MyCommand.Execute(parameter, target)

do I need to call the CanExecute method first or is this already done inside the Execute method?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

往事风中埋 2024-07-31 16:11:48

不要假设 CanExecute 将被 Execute 调用。 ICommand 的接口并不意味着它在调用 Execute 时调用 CanExecute,因此,如果它仅在 CanExecute 为 true 时执行对您很重要,只需自行检查即可。

另外,扫描 RoutedUICommand 的反编译代码,我没有看到任何地方在 Execute 中检查 CanExecute。

确定何时调用 Execute/CanExecute 实际上更多的是消费者的责任。

Do not assume that CanExecute will get called with Execute. The interface for ICommand does not imply that it calls CanExecute when Execute is called, so if it is important to you that it only execute when CanExecute is true, simply check it yourself.

Also, scanning the de-compiled code for RoutedUICommand, I don't see anywhere that checks CanExecute within Execute.

It is really more of the consumer's responsibility to determine when to call Execute/CanExecute.

国际总奸 2024-07-31 16:11:48

如果需要,您应该手动调用 CanExecute,Execute 不会检查它!

You should call CanExecute manually if you need, Execute will not check it!

ι不睡觉的鱼゛ 2024-07-31 16:11:48

您不应该假设 CanExecute 是由 Execute 方法调用的,因为没有任何东西可以强制执行该行为。 所以我认为你应该自己调用 CanExecute

You shouldn't assume that CanExecute is called by the Execute method, since there is nothing to enforce that behavior. So IMO you should call CanExecute yourself

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文