【问题标题】:WPF DataTrigger not working On ComboBox?WPF DataTrigger 在 ComboBox 上不起作用?
【发布时间】:2015-04-30 11:47:17
【问题描述】:

我有以下纯 XAML:

<DockPanel>
    <ComboBox Name="combo" Height="24" Width="60">
        <Border Background="Gray" Padding="20,10">
            <Border.Style>
                <Style TargetType="Border">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=combo, Path=IsDropDownOpen}" Value="True">
                            <Setter Property="Background" Value="Red"></Setter>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Border.Style>
        </Border>
    </ComboBox>
    <TextBlock Text="{Binding ElementName=combo, Path=IsDropDownOpen}"></TextBlock>
</DockPanel>

我希望数据触发器在打开组合框后立即将 border 对象的背景颜色更改为 red,但实际上什么也没发生。

【问题讨论】:

    标签: wpf combobox datatrigger


    【解决方案1】:

    由于您直接在ComboBox 上设置了背景属性,因此触发器不会覆盖该值。

    on MSDN 解释了这种行为。

    您必须像这样将其设置为样式:

    <Border Padding="20,10">
        <Border.Style>
            <Style TargetType="Border">
                <Setter Property="Background" Value="Gray" />
    
                <Style.Triggers>
                    <DataTrigger Binding="{Binding ElementName=combo, Path=IsDropDownOpen}" Value="True">
                        <Setter Property="Background" Value="Red"></Setter>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Border.Style>
    </Border>
    

    【讨论】:

      猜你喜欢
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      • 2013-09-24
      • 2014-09-09
      • 2012-07-11
      • 1970-01-01
      • 2015-11-16
      • 2018-06-19
      相关资源
      最近更新 更多