我有一个按钮和一个文本框,我已经将按钮设置为使用MVVM,INotifyPropertyChanged
和MVVM的命令。但是,我希望在命令的CanExecute
方法返回false
时禁用文本框,即,我希望在禁用按钮时禁用文本框。
如何仅将Textbox
钩接到命令的CanExecute
?
A TextBox
没有可直接绑定到Command
源属性的ICommand
属性。
取决于视图中TextBox
和Button
之间的关系,您可以将前者的IsEnabled
属性绑定到第二个属性:
<Button x:Name="btn" Content="..." Command="{Binding Command}" />
<TextBox IsEnabled="{Binding IsEnabled, ElementName=btn}" />
仅当控件属于相同的namescope时才有效。如果没有,则应在视图模型中添加bool
属性,并从命令的CanExecute
方法返回该值,然后将IsEnabled
的TextBox
属性绑定到该模型。