У меня есть таблица данных WPF, и у меня есть столбец таблицы данных, который называется «Запрошенный источник даты». Приложение должно просмотреть дату в ячейке и изменить цвет в зависимости от того, сегодня это, прошлое или будущее.
У меня есть Ivalueconverter:
public class FBrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string input = value as string;
{
if (input == "Select a date")
{
return new SolidColorBrush(Colors.Black);
}
else
{
DateTime dt = System.Convert.ToDateTime(input);
switch (true)
{
case true when (dt == DateTime.Today):
return new SolidColorBrush(Colors.Yellow);
case true when (dt < DateTime.Today):
return new SolidColorBrush(Colors.Red);
case true when (dt > DateTime.Today):
return new SolidColorBrush(Colors.Blue);
default:
//return Brushes.Black;
return new SolidColorBrush(Colors.Black);
}
}
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
У меня есть XAML:
<DataGridTemplateColumn x:Name="DateoutSource" Header="Requested 
 Date Out Source" Width="125" SortMemberPath="DateOutSource" SortDirection="Ascending" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DatePicker x:Name="BtnDateOutSource" SelectedDate="{Binding DateOutSource}" SelectedDateChanged="BtnDateOutSource_SelectedDateChanged" Foreground="{Binding Converter={StaticResource FBrushConverter}}">
</DatePicker>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
В результате столбец всегда красного цвета:
Трассировка кода указывает, что значение Преобразовать объект всегда NULL, поэтому дисплей всегда красный.
Это подразумевает некоторые проблемы с привязкой. Я попробовал множество подходов без удачи.
Есть идеи на этот счет? Заранее спасибо, Керри