我有 3 个文本框,它们的可见性取决于复选框。我想在所有文本框上设置 IsEnabled = false,当 checkbox.IsChecked = false 和 IsEnabled = true 时 IsChecked = true。如何在 XAML 中实现这种依赖关系?
谢谢。
您可以在命名元素之间进行绑定,只要您绑定到依赖属性,绑定就会反映任何更改
<TextBox IsEnabled="{Binding ElementName=SomeCheckBox, Path=IsChecked}" />
<StackPanel>
<CheckBox Name="Checker" />
<TextBox IsEnabled="{Binding ElementName=Checker, Path=IsChecked}" />
<TextBox IsEnabled="{Binding ElementName=Checker, Path=IsChecked}" />
<TextBox IsEnabled="{Binding ElementName=Checker, Path=IsChecked}" />
</StackPanel>
IsEnabled
将属性绑定IsChecked
到CheckBox
.
<TextBox IsEnabled="{Binding ElementName=NameOfCheckBox, Path=IsChecked}" />
如果您的目标是按照您的问题建议将该 bool 值绑定到Visibility
,那么您还需要利用转换器,例如BooleanToVisibilityConverter。
<TextBox Visibility="{Binding IsChecked, ElementName=NameOfCheckBox, Converter={StaticResource BoolToVisConverter}}" />