【发布时间】:2011-06-02 20:04:22
【问题描述】:
我有一个包含多达 40 个文本框的 WPF 表单,每个文本框都有一个复选框。每个文本框都应根据其相应复选框的值启用/禁用。我已经看到了可以使用 ICommand 来实现此目的的解决方案,但是如何在没有 40 个 ICommand 实现的情况下处理 40 个单独的案例?
【问题讨论】:
我有一个包含多达 40 个文本框的 WPF 表单,每个文本框都有一个复选框。每个文本框都应根据其相应复选框的值启用/禁用。我已经看到了可以使用 ICommand 来实现此目的的解决方案,但是如何在没有 40 个 ICommand 实现的情况下处理 40 个单独的案例?
【问题讨论】:
只需将TextBox 的IsEnabled 属性绑定到CheckBox 的IsChecked 属性即可:
<CheckBox Name="checkBox1" />
<TextBox IsEnabled="{Binding ElementName=checkBox1, Path=IsChecked}" />
【讨论】:
CheckBox.IsChecked绑定到IsTextBoxDisabled,将TextBox.IsEnabled绑定到IsTextBoxEnabled
如果您有 40 个这样的控件,我将创建一个包含复选框和文本框的新控件。您可以使用该新控件而无需实现 40 个命令,而您的新控件具有单个命令实现。这也是需要维护的更少代码,作为额外的好处
【讨论】: