如何将样式应用于动态ComboBox项?

时间:2017-01-17 21:20:05

标签: c# wpf xaml combobox

我有一个在TargetType ToggleButton上设置样式的ComboBox

[data-valueA="knownValueForA"][data-valueB="knownValueForB"] {}

使用列表项源动态设置项目

<ComboBox x:Name="comboBox1" Style="{StaticResource ComboBoxBlue}" HorizontalAlignment="Left" Margin="10,128,0,0" VerticalAlignment="Top" Width="75" />

设置项目背景颜色(全局)

public static List<string> MyItemSource = new List<string>() 
{ 
    "Item 1", "Item 2", "Item 3", "Item 4" 
};

comboBox1.ItemsSource = MyItemSource;

但是我如何设置为x:Key所以它只适用于某些ComboBox?

<!-- ComboBox Blue Item -->
<Style TargetType="{x:Type ComboBoxItem}">
    <Setter Property="Foreground" Value="White" />
    <Setter Property="Background" Value="Blue" />
    <Setter Property="BorderBrush" Value="Blue" />
</Style>

我可以在每个ComboBox上使用ComboBox.ItemContainerStyle标记,但是我必须单独设置每个样式。

<Style x:Key="ComboBoxBlueItem" TargetType="{x:Type ComboBoxItem}">

1 个答案:

答案 0 :(得分:1)

这将对此组合框中的每个项目使用以上样式:

<ComboBox ItemContainerStyle="{StaticResource ComboBoxBlueItem}" />