我有10个ComboBox控件,它们将使用相同的项目模板(图像和文本块)以及相同的项目,因此我想在更全局的范围内(页面级别)定义此模板。这就是我到目前为止所做的:
<UserControl.Resources>
<DataTemplate x:Name="CBItem">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding ImageSource}"></Image>
<TextBlock Text="{Binding TextLabel}"></TextBlock>
</StackPanel>
</DataTemplate>
</UserControl.Resources>
问题是我不知道如何在以下10个ComboBox控件中使用此资源。我尝试过像
这样的东西 <ComboBox Height="25">
<ComboBox.ItemTemplate>
<DataTemplate x:Name="{StaticResource CBItem}"></DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
但它不起作用。有什么帮助吗?
答案 0 :(得分:7)
<ComboBox Height="25" ItemTemplate="{StaticResource CBItem}"/>
或者更好,也创建一种风格:
<Style x:Key="cmbStyle" TargetType="ComboBox">
<Setter Property="ItemTemplate" Value="{StaticResource CBItem}" />
<Setter Property="Height" Value="25"/>
</Style>
然后:
<ComboBox Style="{StaticResource cmbStyle}"/>
或者,如果页面中的所有组合框都应具有此样式:
<Style TargetType="ComboBox">
<Setter Property="ItemTemplate" Value="{StaticResource CBItem}" />
<Setter Property="Height" Value="25"/>
</Style>
然后:
<ComboBox />