使用 VB.net WPF 应用程序,我想尝试将组合框选定项绑定(bind)到文本框的启用属性。我认为有一种方法可以使用样式/触发器来做到这一点,但我不知道如何做。我无法使用事件的属性,因为这些控件绑定(bind)在 ItemsControl 内并动态填充。任何帮助将不胜感激,谢谢。这是我的 xaml:
<ComboBox x:Name="cmbFood"
ItemsSource="{Binding Path=FoodItemList}"
SelectedItem="{Binding Path=FoodItem}"
Width="175"
>
</ComboBox>
<xctk:WatermarkTextBox x:Name="txtAmount"
Width="45"
Margin="5,0,0,0"
Text="{Binding Path=Amount}"
Watermark="{Binding Path=wAmount}"
Foreground="Blue"
/>
最佳答案
您可以使用DataTrigger
,这样您就可以获取 SelectedValue 字符串,如果它作为条件匹配,则告诉它更改您默认设置为 False 的 IsEnabled 状态。基本上;
<ComboBox x:Name="cmbFood"
ItemsSource="{Binding Path=FoodItemList}"
SelectedItem="{Binding Path=FoodItem}"
Width="175"/>
<xctk:WatermarkTextBox x:Name="txtAmount"
Width="45"
Margin="5,0,0,0"
Text="{Binding Path=Amount}"
Watermark="{Binding Path=wAmount}"
Foreground="Blue">
<xctk:WatermarkTextBox.Style>
<Style TargetType="xctk:WatermarkTextBox">
<Setter Property="IsEnabled" Value="False" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=cmbFood, Path=SelectedValue}"
Value="Whatever-SelectedItem-Changes-The-IsEnabled">
<Setter Property="IsEnabled" Value="True" />
</DataTrigger>
</Style.Triggers>
</Style>
</xctk:WatermarkTextBox.Style>
</xctk:WatermarkTextBox>
希望这有帮助,干杯。
关于WPF 禁用基于组合框选定项的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23706814/