Как сделать двойную колонку таблицы данных обнуляемой
У меня есть 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;
}
}
}