【问题标题】:Disable Textbox based on CanExecute of command根据命令的 CanExecute 禁用文本框
【发布时间】:2020-04-11 01:34:36
【问题描述】:

我有一个按钮和一个文本框,我已经使用 MVVM、INotifyPropertyChanged 和 MVVM 将按钮设置为命令。
但是我希望在命令的CanExecute 方法返回false 时禁用文本框,即我希望在禁用按钮时禁用文本框。

如何将Textbox 仅与命令的CanExecute 挂钩?

【问题讨论】:

    标签: wpf xaml mvvm command


    【解决方案1】:

    TextBox 没有可以直接绑定到ICommand 源属性的Command 属性。

    根据视图中TextBoxButton的关系,可以将前者的IsEnabled属性绑定到第二个:

    <Button x:Name="btn" Content="..." Command="{Binding Command}" />
    <TextBox IsEnabled="{Binding IsEnabled, ElementName=btn}" />
    

    这仅适用于控件属于相同的namescope。如果没有,您应该在视图模型中添加一个bool 属性,并从命令的CanExecute 方法返回该属性的值,并将TextBoxIsEnabled 属性绑定到它.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多