Winform-Custom 属性中的数据绑定不起作用
本文关键字:数据绑定 不起作用 属性 Winform-Custom | 更新日期: 2023-09-27 18:33:14
对于兼容的 Null i 覆盖的值属性。但此属性不能在数据绑定中使用。当控件的值更新时,它不会更改。我将控件更改为日期时间选择器,一切都很好。值属性有什么问题?
测试类
class prod
{
int id;
public int Id {
get { return id; }
set { id = value; }
}
DateTime? md;
public Nullable<DateTime> Md {
get { return md; }
set { md = value; }
}
}
自定义日期时间选择器
[Bindable(true), Browsable(true)]
public new object Value
{
get
{
if (realDate)
{
return base.Value;
}
else
{
return DBNull.Value; //If not a real date, sent DBNull to the bound field
}
}
set
{
if (Convert.IsDBNull(value))
{
realDate = false;
oldFormat = Format; //Store the Format of the datetimepicker
Format = DateTimePickerFormat.Custom;
CustomFormat = " "; //With this custom format, the datetimepicker is empty
}
else
{
realDate = true;
CustomFormat = null;
base.Value = Convert.ToDateTime(value);
}
OnValueChanged();
}
}
绑定代码:
prod pp=new prod();
datePicker1.DataBindings.Add("Value",pp,"Md",true,DataSourceUpdateMode.OnValidation);
我发现了问题----需要对选择项中的每个数据绑定使用 WriteValue。
使用 DataSourceUpdateMode.OnPropertyChanged
而不是 DataSourceUpdateMode.OnValidation