Стандартный шаблон - это создание IValueConverter
, которое преобразует ваш объект в True или False на основе сравнения.
В коде:
public class IsBeforeTodayConverter
: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is DateTime)
{
return ((DateTime)value).Date < DateTime.Now.Date;
}
else
{
return DependencyProperty.UnsetValue;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return Binding.DoNothing;
}
}
В XAML:
<Style.Resources>
<local:IsBeforeTodayConverter x:Key="IsBeforeTodayConverter" />
</Style.Resources>
<Style.Triggers>
<DataTrigger
Binding="{Binding DateTimeColumn,
Converter={StaticResource IsBeforeTodayConverter}}"
Value="True">
<Setter Property="Background" Value="Yellow"/>
</DataTrigger>
</Style.Triggers>
Вы можете создать аналогичный конвертер для IsAfterToday или обобщить этот класс, взяв ConverterParameter.