基于命令的 CanExecute 禁用文本框
Disable Textbox based on CanExecute of command
我有一个按钮和一个文本框,我已经使用 MVVM、INotifyPropertyChanged
和 MVVM 将按钮设置为命令。
但是我希望在命令 returns false
的 CanExecute
方法时禁用文本框,即我希望在禁用按钮时禁用文本框。
如何将 Textbox
仅挂接到命令的 CanExecute
?
A TextBox
没有可以直接绑定到 ICommand
源 属性 的 Command
属性。
根据视图中 TextBox
和 Button
之间的关系,您可以将前者的 IsEnabled
属性 绑定到第二个:
<Button x:Name="btn" Content="..." Command="{Binding Command}" />
<TextBox IsEnabled="{Binding IsEnabled, ElementName=btn}" />
这仅在控件属于同一 namescope 时有效。如果他们不这样做,你应该添加一个 bool
属性 到你的视图模型和 return 这个来自命令的 CanExecute
方法的值,并且还绑定IsEnabled
属性 的 TextBox
给它。
我有一个按钮和一个文本框,我已经使用 MVVM、INotifyPropertyChanged
和 MVVM 将按钮设置为命令。
但是我希望在命令 returns false
的 CanExecute
方法时禁用文本框,即我希望在禁用按钮时禁用文本框。
如何将 Textbox
仅挂接到命令的 CanExecute
?
A TextBox
没有可以直接绑定到 ICommand
源 属性 的 Command
属性。
根据视图中 TextBox
和 Button
之间的关系,您可以将前者的 IsEnabled
属性 绑定到第二个:
<Button x:Name="btn" Content="..." Command="{Binding Command}" />
<TextBox IsEnabled="{Binding IsEnabled, ElementName=btn}" />
这仅在控件属于同一 namescope 时有效。如果他们不这样做,你应该添加一个 bool
属性 到你的视图模型和 return 这个来自命令的 CanExecute
方法的值,并且还绑定IsEnabled
属性 的 TextBox
给它。