Windows Forms (.NET 2.0, Visual Studio 2005 SP1) içinde: Ben yazdığınız DataSettipi olan sütun ile, System.Booleannull ve varsayılan değerdir, DBNull. Bir sahip Formbir ihtiva eden, CheckBoxbir önceden sütun değeri bağlamak istediğiniz kontrolü.
- Ben bağlamak çalıştık
Checkedtasarımcı aracılığıyla kolona özelliği: büyük, sütun için varsayılan değer olarak ayarlanırsa durumunda çalışırTrueveyaFalse. Ben bağlamak çalıştık
CheckStatetasarımcı aracılığıyla kolona özelliği ve kendi takılarakFormatveParseolay işleyicileri ama onlar asla denilen olsun:b.Format+=delegate(object sender, ConvertEventArgs cevent) { cevent.Value=DoFormat((CheckState)cevent.Value); // cf. end of the question }; b.Parse+=delegate(object sender, ConvertEventArgs cevent) { cevent.Value=DoParse(cevent.Value); // cf. end of the question };Özel bir oluşturmak için çalıştık
Binding, kod örneği benim olay işleyicileri takmak ve eklemekCheckBoxbağlamaları: Olay işleyicileri hala denilen olsun asla ...Binding b=new Binding(CheckState, _BindingSource, MyColumn, false, DataSourceUpdateMode.OnPropertyChanged, DBNull.Value);
Bir not olarak: Bir DBNulldeğer yalnızca gelen kabul edilebilir DataSet(set olmamıştı o değer anlamına gelir). Ama kullanıcı sadece değer ayarlamak gerekir Trueya Falseyoluyla CheckBox.
Referans olması açısından, ayrıştırma ve biçimlendirme yöntemlerinin kodudur:
internal static CheckState DoParse(object value)
{
if ((value==null) || (value is DBNull))
return CheckState.Indeterminate;
bool v=Convert.ToBoolean(value);
return (v ? CheckState.Checked : CheckState.Unchecked);
}
internal static object DoFormat(CheckState value)
{
switch (value)
{
case CheckState.Checked:
return true;
case CheckState.Indeterminate:
return DBNull.Value;
case CheckState.Unchecked:
return false;
}
return null;
}













