如何使datagrid双列可以为空

时间:2016-12-14 13:51:15

标签: c# wpf datatable datagrid nullable

我有DataGrid绑定到DataTable。一些列是double类型。如您所知,double不接受null值,该列不接受double? (或Nullable<double>)作为其类型。如何让列接受null值?

3 个答案:

答案 0 :(得分:1)

尝试

<binary name>PackageTests.xctest

答案 1 :(得分:1)

((DataGridBoundColumn)e.Column).Binding.TargetNullValue = string.Empty;

在创建列时尝试将DataGridAutoGeneratingColumnEventArgs设置为事件处理程序,并执行上述操作。这将使您的数据列在double类型时接受空值。

答案 2 :(得分:1)

我使用与绑定关联的转换器解决了它,该绑定将“”或null转换为DBNull.value

//Converter to accept null values in Datagrid not String columns
class DatagridContentConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value == null || ((value.GetType() == typeof(String) && (String)value == "")))
        {
            return DBNull.Value;
        }
        else
        {
            return value;
        }
    }
}