我有一个按钮和一个文本框,我已经将按钮设置为使用MVVM,INotifyPropertyChanged
和MVVM的命令。
但是,我希望在命令的CanExecute
方法返回false
时禁用文本框,即,我希望在禁用按钮时禁用文本框。
如何仅将Textbox
挂接到命令的CanExecute
?
答案 0 :(得分:1)
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
。