. net绑定SqlByte数据类型的复选框的checked属性
本文关键字:复选框 属性 checked 数据类型 绑定 SqlByte net | 更新日期: 2023-09-27 17:53:53
操作失败:
dtaAutomaticFlag.DataBindings.Add("Checked", BndSource, "AutomaticFlag");
很可能是因为AutomaticFlag被定义为:
public SqlByte AutomaticFlag { get; set; }
SQL Server是tinyint。原因是我不仅仅需要0和0作为值。
我需要检查值是否为1,不检查所有其他值
我想的一件事是在我的类中创建一个额外的属性AutomaticFlagBoolean,并检查AutomaticFlag并绑定到新属性。
这就是我所尝试的,但我总是得到false:
private SqlByte _automaticFlag;
public SqlByte AutomaticFlag
{
get { return _automaticFlag; }
set
{
if (_automaticFlagBoolean)
{
_automaticFlag = 1;
}
else
{
_automaticFlag = 0;
}
}
}
private bool _automaticFlagBoolean;
public bool AutomaticFlagBoolean
{
get
{
if (_automaticFlag == 1)
{
return _automaticFlagBoolean = true;
}
else
{
return _automaticFlagBoolean = false;
}
}
set { _automaticFlagBoolean = value; }
}
这是在我的绑定:
dtaAutomaticFlag.DataBindings.Add("Checked", BndSource, "AutomaticFlagBoolean");
复选框控件需要一个布尔值进行绑定。
尝试使用一个局部变量来保存值:
private SqlByte _automaticFlag;
private bool _automaticFlagBoolean;
public SqlByte AutomaticFlag
{
get { return _automaticFlag; }
set
{
_automaticFlag = value;
_automaticFlagBoolean = (_automaticFlag != 0);
}
}
public bool AutomaticFlagBoolean
{
get
{
return _AutomaticFlagBookean;
}
set { _automaticFlagBoolean = value;
if (_automaticFlagBoolean) {
_automaticFlag = 1;
} else {
_automaticFlag = 0;
}
}
}
dtaAutomaticFlag.DataBindings.Add("Checked", BndSource, "AutomaticFlagBoolean");
你的类也应该实现INotifyPropertyChanged,但这有点超出了你的问题的范围