【问题标题】:Can one extend WPF's ICommand behavior for controls?可以为控件扩展 WPF 的 ICommand 行为吗?
【发布时间】:2016-08-09 00:06:24
【问题描述】:

当一个项目的 Command 属性绑定到 ICommand 时,您可以期望它的启用状态依赖于 ICommand.CanExecute。我想做的是创建一个从 ICommand 继承的接口,它提供一个“MayExecute”来为控制可见性做同样的事情。有没有一种干净的方法可以在不有效地重新编译 .NET 的情况下做到这一点?

【问题讨论】:

    标签: .net wpf icommand


    【解决方案1】:

    我会考虑使用附加属性来执行此操作。我认为这是可行的(也很酷)。

    附加属性将有一个方法来检查目标控件上的Command 的值是否实现IVanishingCommand 或任何你称之为的方法。如果是这样,它订阅MayExecuteChanged 并酌情覆盖控件的可见性。

    Command 获得新值时,您将再次调用该方法(并确保取消订阅旧的Command 事件)。

    使用反射获取控件的Command依赖属性;例如,ButtonMenuItem 不要都从任何公共基类继承Command

    您也可以使用 Style 中的触发器来执行此操作 - 但在所有这些不同样式中执行此操作很快就会变得很糟糕。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 1970-01-01
      • 2021-04-25
      相关资源
      最近更新 更多