Silverlight“条件”绑定到datagrid列?

时间:2011-07-28 21:27:43

标签: c# silverlight data-binding

我正在以编程方式为我的datagrid设置datagrid列,然后将网格绑定到可观察的集合。

我的几个列绑定到DateTime属性,但是,如果它们在数据库中是空值,则由于DateTime是非可空类型,它将DateTime属性设置为最小值。

上述列的我的绑定如下:

DataGridTextColumn scanned = new DataGridTextColumn();
scanned.Header = "Scanned";
scanned.Binding = new Binding("DateScanned");
dataGrid.Columns.Add(scanned);

“DateScanned”是datetime属性。 现在,不是那些在网格中显示为“1/1/0001”的值,如果它们被清空,我更喜欢它。 这就是我的问题。

我能否以某种方式将此绑定设置为条件,如果属性值为“1/1/0001”,则不显示任何内容?

3 个答案:

答案 0 :(得分:1)

使用value converter将此类特定值转换为空白或其他任何您想要的值。

答案 1 :(得分:1)

我认为您应该使用Converter以便从您的ModelView转换为以您想要的格式查看数据。看看这个简单的教程:

Converter in Silverlight

问候。

答案 2 :(得分:0)

没关系,发现有关绑定转换器的信息。写了一个“MinDateConverter”来检查它是否是最短的约会时间。如果是,则返回空白,否则返回日期时间。

public class MinDateConverter : IValueConverter
{
    public MinDateConverter()
    {
    }

    public virtual object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        DateTime dt = (DateTime)value;
        if (dt.Equals(DateTime.MinValue))
            return string.Empty;
        else
            return dt.ToShortDateString();
    }

    public virtual object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return value;
    }
}