我尝试构建一个DataGrid,并且想要将其中一个TextColumn的Foreground属性绑定到一个日期上,这样如果该日期在过去,它就会变成红色。
以下是XAML代码:
<toolkit:DataGridTextColumn
Binding="{Binding Path=Prüfdatum, Converter={StaticResource TimestampToDateConverter}}"
Header="Prüfdatum"
Foreground="{Binding Path=Prüfdatum, Converter={StaticResource TimestampToColorConverter},
ConverterParameter=Prüfdatum}" />
这是我的转换器:
class TimestampToColorConverter: IValueConverter
{
#region IValueConverter Member
public object Convert(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
string Datum = value.ToString();
int year = System.Convert.ToInt32(Datum.Substring(6, 4));
int month = System.Convert.ToInt32(Datum.Substring(3, 2));
int day = System.Convert.ToInt32(Datum.Substring(0, 2));
int hour = System.Convert.ToInt32(Datum.Substring(11, 2));
int minute = System.Convert.ToInt32(Datum.Substring(14, 2));
int second = System.Convert.ToInt32(Datum.Substring(17, 2));
DateTime Time = new DateTime(year, month, day, hour, minute, second);
if (Time < System.DateTime.Now)
{
return Brushes.Red as Brush;
}
else
{
return Brushes.Black as Brush;
}
}
public object ConvertBack(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
#endregion
}
我不知道出了什么问题,但转换器甚至没有被调用(第一个转换器完美运行)。输出窗口显示如下:
希望你们能帮我解决这个问题。System.Windows.Data Error: 2 : 找不到控制 FrameworkElement 或 FrameworkContentElement 以便为目标元素进行绑定。 BindingExpression:Path=Prüfdatum; DataItem=null; 目标元素为
'DataGridTextColumn' (HashCode=16187528); 目标属性为 'Foreground'(类型为 'Brush')
谢谢。