WPF 禁用基于组合框选定项的文本框

标签 wpf vb.net xaml data-binding combobox

使用 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/

相关文章:

c# - 使用 WrapPanel 指定每行的项目数

c# - 以编程方式将 Click 事件处理程序添加到单选按钮

asp.net - VB.NET Web 服务 - 从继承类返回只读属性

c# - 操纵形式. Action

asp.net - 如何?参数和LIKE语句SQL

c# - 带虚线的 TreeView/TreeViewItem ControlTemplates

wpf - 将 TabControl 与分组的 CollectionViewSource 结合使用

WPF按钮gif动画

WPF 自定义 ICommand 实现和 CanExecuteChanged 事件

c# - 如何在 wpf 中制作多色分段进度条?