粗体和斜体文本取决于WPF组合框中的数据,不带XAML



我有一个从组合框派生的CustomControl,我想根据相关数据用粗体文本显示某些项目,有些用斜体显示,有些用普通显示。由于没有与此相关的XAML,我很难找到处理此问题的方法。这些项通过ItemsSource属性DataBound到控件,因此每个项类型都只是我的数据对象的Object类型。

有什么想法吗?

您可以将DataTemplate用于自定义组合框覆盖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>

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

最新更新