Как сделать двойную колонку таблицы данных обнуляемой

У меня есть DataGrid привязан к DataTable, Некоторые из столбцов имеют тип double. Как вы знаете, двойной не принимает null значение, и столбец не принимает double? (или же Nullable<double>) как его тип. Как я могу сделать колонку, чтобы принять null ценности?

3 ответа

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

Попробуйте установить DataGridAutoGeneratingColumnEventArgs в качестве обработчика событий, когда столбец создается, и делает выше. Это позволит вашим столбцам данных принимать пустые значения типа double.

Я решил это с помощью конвертера, связанного с привязкой, которая переводит "" или ноль в 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;
        }
    }
}

Пытаться

DataGridView1.CurrentCell.Value = DBNull.Value
Другие вопросы по тегам