基于命令的 CanExecute 禁用文本框

Disable Textbox based on CanExecute of command

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

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

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

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

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

这仅在控件属于同一 namescope 时有效。如果他们不这样做,你应该添加一个 bool 属性 到你的视图模型和 return 这个来自命令的 CanExecute 方法的值,并且还绑定IsEnabled 属性 的 TextBox 给它。