【问题标题】:WPF disabling a textbox based on Combobox selecteditemWPF禁用基于Combobox selecteditem的文本框
【发布时间】:2014-07-05 14:05:59
【问题描述】:

使用 VB.net WPF 应用程序,我想尝试将组合框 selecteditem 绑定到文本框的启用属性。我认为有一种方法可以使用样式/触发器,但我不知道如何。我不能使用事件的属性,因为这些控件绑定在 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"
                        />

【问题讨论】:

    标签: wpf vb.net xaml data-binding combobox


    【解决方案1】:

    您可以选择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>
    

    希望这会有所帮助,干杯。

    【讨论】:

      猜你喜欢
      • 2011-01-10
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      • 2011-11-01
      • 2017-02-20
      • 2018-08-04
      • 2014-03-18
      • 2015-06-28
      相关资源
      最近更新 更多