怎么给用户控件传递泛型类
其实就是想实现传DataGridView控件名和数据模型实例就可以实现绑定不同DataGridView和不同list<model>实例就可以控制DataGridView分页的自定义控件
请问大神
按照你上面那个方法,没有错了,不过由于在类名后面加了,不能生自定义控件的dll包,
--四、在类中加一个设置参数的方法,传入参数Type t。Type参数自能够匹配字段类型,不能匹配内类型,
怎么弄一个属性,用来获得类型还是不知道
实际上如果你一定要在UserControl中改签名的话,只要你在设计器使用了任何资源(如图片等),一定会报错的,因为设计器根本不能识别泛型扩展的用户控件。
“Type参数自能够匹配字段类型,不能匹配内类型”我不知道你“内类型”具体指什么。仅一般用途来说,在用户控件中维护一个private Type myType;随便怎么传都可以。
public void SetType(Type myType){this.myType=myType;}足够了。有了myType,虽然没有泛型T这样用起来方便,但是完全可以做一样的工作,比如返回一个myType类型的值之类。
此外想请你说明一下为什么一定要在用户控件类上用泛型?很多需求都可以有实现捷径的。
追问我想要在外面传设置typeModel就可以给调用
bindDataGridViewByList(DTGV,tlist,5,frist,up,next,last);方法
原来如此。不管你传入的泛型/类型是什么,你总之是用它来生成new List。如果tlist本身就是控件内的私有成员且SetModel是控件的公共方法,这样写不就好了:
public void SetModel()
{
this.tlist=new List();
}
缺点是T的有效范围仅在SetModel方法内部。如果你在控件内其他方法想返回T的实例是没有办法的,只能用object替代。
过长请私信、