我正在尝试在XAML中的SelectedIndex为-1时设置WPF ComboBox的背景颜色。我试图在触发器中设置背景颜色,但是我收到错误告诉我无法在触发器的属性中设置绑定。
感谢
<ComboBox x:Name="cbFormNameList" ItemsSource="{Binding}" DisplayMemberPath="Name" SelectedValuePath="Name"> <ComboBox.Style> <Style TargetType="{x:Type ComboBoxItem}"> <Style.Triggers> <Trigger Property="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=SelectedIndex}" Value="-1"> <Setter Property="Background" Value="#FFFAFFA9"/> </Trigger> </Style.Triggers> </Style> </ComboBox.Style> </ComboBox>
答案 0 :(得分:2)
您的样式是针对ComboBoxItem而不是组合框本身。当没有选择任何内容时,下面将更改ComboBox的背景:
<ComboBox.Style>
<Style TargetType="{x:Type ComboBox}">
<Style.Triggers>
<Trigger Property="SelectedIndex" Value="-1">
<Setter Property="Background" Value="#FFFAFFA9"/>
</Trigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
该样式应直接以ComboBox为目标。
答案 1 :(得分:2)
您的TargetType和Trigger属性错误。尝试以下,它确实有效。组合框将以黄色开始,并在您更改选择时更改。
<ComboBox>
<ComboBoxItem>
Test
</ComboBoxItem>
<ComboBox.Style>
<Style TargetType="ComboBox">
<Style.Triggers>
<Trigger Property="SelectedIndex" Value="-1">
<Setter Property="Background" Value="#FFFAFFA9"/>
</Trigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
</ComboBox>