Вы можете использовать привязку данных к CheckState
собственности таким образом:
checkBox1.DataBindings.Add("CheckState", bs, "DataFieldName", true,
DataSourceUpdateMode.OnPropertyChanged, CheckState.Indeterminate);
Таким образом, когда значение поданных в источнике данных имеет нулевое значение, CheckState.Indeterminate
будет показан в пользовательском интерфейсе ,
Примечание
Если вы хотите по умолчанию значение столбца быть 0
или бесконтрольно, а затем установите DefaultValue
из DataColumn
в 0
.
Если вы хотите, чтобы пользователь также установил значение поля в null, достаточно установить значение ThreeState
объекта CheckBox
в true.
Пример
dt = new DataTable();
var c1 = dt.Columns.Add("C1", typeof(int));
c1.AllowDBNull = true;
//Uncomment the next statement if you want default value be 0 = unchecked
//c1.DefaultValue = 0;
//Uncomment the next statement if you want to allow the user to set value to null
//checkBox1.ThreeState = true;
var bs = new BindingSource();
bs.DataSource = dt;
checkBox1.DataBindings.Add("CheckState", bs, "C1", true,
DataSourceUpdateMode.OnPropertyChanged, CheckState.Indeterminate);
this.bindingNavigator1.BindingSource = bs;
Почему не устанавливать значение по умолчанию ложное в БД? – Berkay
Я пробовал, что он все еще устанавливает его как null. –
является 'gehund' нулевым bool? – Crowcoder