.net 如何限制自定义数据绑定控件接受自定义集合作为数据源?
我已经根据我的要求创建了一个自定义数据绑定控件,现在我想限制这个控件应该将自定义集合作为数据源,而不是将IEnuberable接口所推动的每个集合作为数据源 可以限制吗?如果是,如何限制.net 如何限制自定义数据绑定控件接受自定义集合作为数据源?,.net,asp.net,custom-controls,databound,.net,Asp.net,Custom Controls,Databound,我已经根据我的要求创建了一个自定义数据绑定控件,现在我想限制这个控件应该将自定义集合作为数据源,而不是将IEnuberable接口所推动的每个集合作为数据源 可以限制吗?如果是,如何限制 提前感谢..您能在数据源的setter中设置一个防护吗 public object DataSource { get { return ....; } set { if (value is typeof(myCollection) ) this.dataSo
提前感谢..您能在数据源的setter中设置一个防护吗
public object DataSource
{
get
{
return ....;
}
set
{
if (value is typeof(myCollection) )
this.dataSource = value;
else
throw InvalidOperationException("DataSource must by {0}" typeof(myCollection).FullName;
}
}
最简单的方法之一是将类型检查放入与数据源相关的属性中。例如,@Preet已经指出重写
DataSource
setter。这种方法的唯一问题是,您还需要注意使用DataSourceID
绑定控件的情况
我更倾向于建议在方法中加入一个类型检查——这当然是假设您继承了DataBoundControl
类。调用此方法是为了使派生类能够实际绑定数据—因此它是一个很好的候选者。另一个等价物是将check放入OnDataBind
另一种方法是将特定集合作为属性公开以接受数据。在这种情况下,应该避免暴露数据源
相关属性