<ComboBox
Foreground="Black"
BorderBrush="Black"
HorizontalAlignment="Left" Margin="108,280,0,0" VerticalAlignment="Top" Width="200" Style="{StaticResource ComboBoxStyl}"><ComboBoxItem Content="One" IsSelected="True" Style="{StaticResource ComboBoxItemStyle1}"/>
<ComboBoxItem Content="Two" Style="{StaticResource ComboBoxItemStyle1}"/>
<ComboBoxItem Content="Three" Style="{StaticResource ComboBoxItemStyle1}"/>
<ComboBoxItem Content="Four" Style="{StaticResource ComboBoxItemStyle1}"/>
<ComboBoxItem Content="Five" Style="{StaticResource ComboBoxItemStyle1}"/>
</ComboBox>
这里我提到了每个ComboBoxItem的样式表。我只想引用样式表一次(相对于ComboBoxItem)。因此,当动态数据项添加到样式时,它们将自动应用。
答案 0 :(得分:0)
你会想要使用这样的东西:
<ComboBox x:Name="combobox1" ItemsSource="{Binding ItemList}">
<ComboBox.ItemTemplate>
<DataTemplate>
<!-- define data template and/or style, example: -->
<TextBlock Style="{StaticResource TextBlockItemStyle}" Text="{Binding ItemText}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
此外,由于您要动态添加/删除项目,最好将项目源绑定到您可以在c#中轻松编辑的列表或集合。您可能想要创建一个类:
public class ComboBoxListItem
{
public string ItemText {get; set;}
//any other useful property
}
然后在您的页面中创建一个List<ComboBoxListItem> ItemList
,并在页面的构造函数中,使用您想要的任何数据初始化列表。然后在您的XAML DataTemplate中,只需在想要显示文本的位置插入"{Binding ItemText}"
(就像我在文本块中所做的那样)。
答案 1 :(得分:0)
<ComboBox
SelectedIndex="0"
Foreground="Black"
ItemContainerStyle="{StaticResource ComboBoxItemStyle1}"
BorderBrush="Black"
HorizontalAlignment="Left" Margin="108,280,0,0" VerticalAlignment="Top" Width="200" Style="{StaticResource ComboBoxStyl}">
<ComboBoxItem Content="One" />
<ComboBoxItem Content="Two" />
<ComboBoxItem Content="Three" />
<ComboBoxItem Content="Four" />
<ComboBoxItem Content="Five" />
</ComboBox>
使用“ItemContainerStyle”引用我们为ComboBoxItems创建的sylesheet,无论是静态还是动态声明,我们都可以轻松更改ComboBoxItems的样式。