【问题标题】:Is binding IsEnabled optional when binding Command?绑定命令时绑定IsEnabled是否可选?
【发布时间】:2012-03-09 22:04:41
【问题描述】:

我注意到以下代码:

<Button Content="_Timbres..." 
    Command="{Binding Path=ShowTimbresCommand}" 
    IsEnabled="{Binding Path=CanExecuteShowTimbresCommand}"/>

表现相同:

<Button Content="_Timbres..." 
    Command="{Binding Path=ShowTimbresCommand}">

意味着 CanExecuteShowTimbresCommand 自动绑定到 IsEnabled 属性。 这是真的吗?为什么?

【问题讨论】:

    标签: c# wpf xaml data-binding command


    【解决方案1】:

    如果命令的CanExecutefalse,通常接受Command 的控件会将IsEnabled 设置为false,仅此而已。

    MSDN:

    命令的另一个目的是指示操作是否可用。 [...] 按钮可以订阅 CanExecuteChanged 事件并在 CanExecute 返回 false 时被禁用,或者在 CanExecute 返回 true 时启用。 p>

    【讨论】:

    • @MichelKeijzers:如果你到目前为止总是自己处理IsEnabled,那确实是这样。
    • 是的,我目前到处都有一个命令与 IsEnabled = CanExecute 一起用于同一命令。我假设您在答案中所做的额外编辑是自动完成的。
    • @MichelKeijzers:是的,当您设置应该在内部发生的命令属性时(我还没有看到不遵循这一点的 .NET 控件)。
    猜你喜欢
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多