粗体和斜体文本取决于WPF ComboBox中的数据,没有XAML

Ada*_*ile 5 c# wpf combobox

我有一个从ComboBox派生的CustomControl,我想用粗体文本显示某些项目,有些用Italic和一些正常,取决于相关数据.由于没有与此相关的XAML,我无法找到处理此问题的方法.这些项是通过ItemsSource属性到控件的DataBound,因此每个项类型只是我的数据对象的Object类型.

有任何想法吗?

Nav*_*ani 9

您可以使用DataTemplate覆盖ComboBox的自定义ComboBoxItemTemplate

<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>
Run Code Online (Sandbox Code Playgroud)

CustomCombobox的的ItemSource是集合与字符串属性的简单对象Title和一个int属性Style