基于命令的CanExecute禁用文本框

问题描述 投票:0回答:1

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

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

wpf xaml mvvm command
1个回答
1
投票

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

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

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

仅当控件属于相同的namescope时才有效。如果没有,则应在视图模型中添加bool属性,并从命令的CanExecute方法返回该值,然后将IsEnabledTextBox属性绑定到该模型。

© www.soinside.com 2019 - 2024. All rights reserved.