0

我需要为我的行设置颜色datagrid,我使用loadingrow事件:

DataRowView item = e.Row.Item as DataRowView;
if (item != null)
{
    DataRow row = item.Row;
    var colValue = row[3];
    if (colValue > DATETIME_NOW-10_MINUTES)
    {
        e.Row.Background = (Brush)new BrushConverter().ConvertFrom("#FCD2CD");
    }
}

colValue是类型datetime是 sql 表。如何设置最后十分钟的颜色行?

4

4 回答 4

4

您必须从 Row 转换值并使用DateTime结构的某些方法(如您需要的 ( AddMinutes, AddHours, AddDays) 并添加一个负值以获得DateTime过去的 a 。看一看:

if (item != null)
{
    DataRow row = item.Row;
    var colValue = (DateTime)row[3];
    if (colValue > DateTime.Now.AddMinutes(-10))
    {
        e.Row.Background = (Brush)new BrushConverter().ConvertFrom("#FCD2CD");
    }
}
于 2012-07-09T13:43:04.477 回答
2
if(colValue > DateTime.Now.AddMinutes(-10))
{
  e.Row.Background = (Brush)new BrushConverter().ConvertFrom("#FCD2CD");
}
于 2012-07-09T13:43:56.097 回答
2

您可以使用 DateTime.Now 获取当前日期/时间并使用 AddMinutes() 添加一些分钟(您可以传递一个负值)

colValue > DateTime.Now.AddMinutes(-10)
于 2012-07-09T13:44:23.580 回答
1

创建一个自定义值转换器,将日期/时间转换为颜色。这样,您可以将颜色声明性地绑定到模型中的字段,反之亦然。

这更像是 WPF 方式,而不是在后面的代码中强制执行。

于 2012-07-09T13:48:18.827 回答