У меня есть список wpf, который реализует DataTemplate, который содержит TextBlock.Возможно ли вернуть более чем одно значение из ivalueconverter в wpf?
<local:BooleanToFontColorConverter x:Key="boolToFontColor" />
<DataTemplate x:Key="ListBox_DataTemplateSpeakStatus">
<Label Width="Auto">
<TextBlock Foreground="{Binding Path=myProperty, Converter={StaticResource boolToFontColor}}" />
</Label>
</DataTemplate>
Моя задача состоит в том на изменения «MyProperty», я хочу, чтобы цвет шрифта быть разными. Мой конвертер выглядит так:
public class BooleanToFontColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture)
{
if (value is Boolean)
{
return ((bool)value) ? new SolidColorBrush(Colors.Red) : new SolidColorBrush(Colors.Black);
}
return new SolidColorBrush(Colors.Black);
}
public object ConvertBack(object value, Type targetType, object parameter,
CultureInfo culture)
{
throw new NotImplementedException();
}
}
Это работает. Цвет шрифта (переднего плана) станет красным при изменении связанного свойства.
Мой вопрос заключается в следующем: я хотел бы, чтобы мой шрифт изменился на красный, и полужирный, и курсив. Я знаю, что это возможно с помощью встроенных текстовых блоков, но можно ли использовать все три эти вещи с помощью моего конвертера?
Спасибо всем, у кого есть мысли и понимание, которые отвечают.
Благодарим за ваш быстрый комментарий. Я буду исследовать, как использовать DataTrigger! –
@mherr, если этот ответ вам помог, вы должны принять его ... –
Спасибо Marc, я знаю, что так работает этот сайт. Я потратил некоторое время на исследование DataTriggers, чтобы узнать, действительно ли это решит мою проблему. Я решил, что я не буду использовать DataTriggers, но они будут работать отлично, если я захочу. –