基于命令的CanExecute禁用文本框

时间:2019-12-18 13:24:11

标签: wpf xaml mvvm command

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

如何仅将Textbox挂接到命令的CanExecute

1 个答案:

答案 0 :(得分:1)

TextBox没有Command属性,您可以直接将其绑定到ICommand源属性。

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

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

这仅在控件属于相同的namescope时有效。如果没有,则应在视图模型中添加一个bool属性,并从命令的CanExecute方法返回该值,并绑定以下项的IsEnabled属性TextBox