在WPF ComboBox中根据数据设置加粗和斜体文本,无需使用XAML。

5
我有一个CustomControl,它派生自ComboBox,我想根据相关数据以粗体、斜体或正常字体显示某些项目。由于没有与之关联的XAML,我无法找到处理这个问题的方法。通过ItemsSource属性将项目绑定到控件,因此每个项目类型只是我的数据对象的Object类型。
有什么想法吗?
1个回答

9
您可以使用DataTemplate来自定义ComboBox,通过重写ComboBox的ItemTemplate
<CustomComboBox.ItemTemplate>
    <DataTemplate>
        <TextBlock x:Name="tbTitle" Text="{Binding Title}"/>
        <DataTemplate.Triggers>
            <DataTrigger Binding="{Binding Style}" Value="0">
                <Setter TargetName="tbTitle" Property="FontWeight" Value="Bold"/>                      
            </DataTrigger>

            <DataTrigger Binding="{Binding Style}" Value="1">
                <Setter TargetName="tbTitle" Property="Foreground" Value="Red"/>
                <Setter TargetName="tbTitle" Property="FontStyle" Value="Italic"/>
            </DataTrigger>
        </DataTemplate.Triggers>
    </DataTemplate>
</CustomComboBox.ItemTemplate>
CustomComboboxItemSource是一个简单对象集合,其中包含一个字符串属性Title和一个整数属性Style

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接