Текст, выделенный жирным шрифтом и курсивом в зависимости от данных в WPF ComboBox, без XAML - PullRequest
5 голосов
/ 17 июня 2011

У меня есть CustomControl, производный от ComboBox, и я хотел бы показать некоторые элементы жирным шрифтом, некоторые курсивом, а некоторые обычным, в зависимости от связанных данных.Поскольку XAML не связан с этим, я не могу найти способ справиться с этим.Элементы привязаны к элементу управления через свойство ItemsSource, поэтому каждый тип элемента является просто типом объекта для моего объекта данных.

Есть идеи?

1 Ответ

9 голосов
/ 20 июня 2011

Вы можете использовать DataTemplate для своего собственного ComboBox с переопределением ComboBox's 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>

ItemSource CustomCombobox является коллекциейпростой объект со строковым свойством Title и свойством int Style

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...