如何更改现有绑定的路径?
本文关键字:路径 绑定 何更改 | 更新日期: 2023-09-27 18:34:43
我这里有一个文本框
<TextBox ...>
<TextBox.Text>
<Binding Path="MinStepDiff" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:ImpellerArgsRule IsCanBeZero ="false"/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
它的内容依赖于其他组合框
<ComboBox ...>
<ComboBoxItem Content="Sample1"/>
<ComboBoxItem Content="Sample2"/>
<ComboBoxItem Content="Sample3"/>
</ComboBox>
如果选择了Sample1
或Sample3
,则应将文本框绑定到MinStepDiff
如果选择了Sample2
,则应将文本框绑定到MinTolerance
然后
它们都是对象的属性。
我该怎么做?
您可以使用
DataTrigger
.为此,您必须创建一个样式并为您的ComboBox
命名(此处为"cb"(。因为这更容易,我绑定SelectedIndex
而不是SelectedItem
.
<TextBox>
<TextBox.Style>
<Style TargetType="TextBox">
<Setter Property="Text">
<Setter.Value>
<Binding Path="MinStepDiff" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:ImpellerArgsRule IsCanBeZero="false" />
</Binding.ValidationRules>
</Binding>
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding SelectedIndex, ElementName=cb}" Value="1">
<Setter Property="Text">
<Setter.Value>
<Binding Path="MinTolerance" UpdateSourceTrigger="PropertyChanged" />
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>