我想做一个自定义控件,想在其中进行数据绑定:
DataBindings.Add(new Binding("text",DataSetName,"TableName.FieldName"));
但是设计时还没有数据源存在,就是上面这句话中的DataSetName.请高手指导一下.谢谢.
DataBindings.Add(new Binding("text",DataSetName,"TableName.FieldName"));
但是设计时还没有数据源存在,就是上面这句话中的DataSetName.请高手指导一下.谢谢.
所以在做自定义控件时,是没有数据源的,只有将自定义控件拖到Form上才有对应的数据源.即上面讲到的DataSetName.
如果确定绑定到哪一列的话,你可以先在控件上加一个bindingSource,
然后DataBindings.Add(new Binding("text",bindingSource,"列名"));
在将控件放到Form的时候,再设置bindingSource的Datasource和DataMember。这样是可以的
就是因为不想在做表单实例时一个个控件进行数据绑定,只想在设计时指定一个属性,运行时自动绑定啊.
并且DataSet也是在表单运行时才通过代码生成的.
如果你的自定义控件,是继承现有控件的那种(不是.ascx那种).那么你可以在.cs文件中定义一个公有属性,用来接受你的字段名字,假如你的字段这样定义
private string biddingColumnName;
public string _BiddingColumnName
{
set
{
biddingColumnName = value;
}
get
{
//做一些判断,进而判定是否在调用之前给属性赋值
//如果没有赋值,就throw new Exception("xxxx")抛出一个异常等等
}
}
那么,你可以在绑定数据源的时候这样搞
DataBindings.Add(new Binding("text",DataSetName,_BiddingColumnName));