自定义ComboBoxItem的内容显示最简单的方法是什么?我想提供一个字体名称列表,每个项目都用相应的字体绘制 我怀疑我需要像
这样的东西<TextBlock FontFamily="{TemplateBinding Content}" Text="{TemplateBinding Content}" />
那会去哪里?
我可以为ComboBoxItem创建一个控件模板,并仅将其用于选定的ComboBoxes吗?
谢谢你的任何提示......
答案 0 :(得分:5)
Silverlight 3没有隐式样式,因此如果您使用ControlTemplate创建样式来完成此操作,则必须将其显式分配给ComboBox。不用担心它会被意外捡起来。
我能够通过ComboBox中的以下XAML实现此目的,绑定到ObservableCollection<string>
:
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock FontFamily="{Binding}" Text="{Binding}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
显然,如果绑定到更复杂的东西,Binding可能需要一个属性名称,但这使我能够以自己的字体看到各种选择。
如果您发现自己重复使用,也可以将其重构为DataTemplate
或样式。