在UserControl中如何使用Collection集合属性以及CollectionEditor集合编辑器
想在UserControl中使用Collection集合属性以及CollectionEditor集合编辑器,同样的写法,在webcontrol(继承自WebControl类)中正确,但是在UserControl(继承自System.Web.UI.UserControl)不能用,集合属性不显示。各位老大,谁有例子及解决方法? --------------------编程问答-------------------- 顶一下 --------------------编程问答-------------------- 似乎不支持 --------------------编程问答-------------------- 再加上一个类,然后继承 System.Collections.CollectionBase 就是了 --------------------编程问答-------------------- 不期望想当然的回答 --------------------编程问答-------------------- 想在UserControl中使用Collection集合属性以及CollectionEditor集合编辑器,同样的写法,在webcontrol(继承自WebControl类)中正确
-----------------
你在WebControl里面怎么用的?说说看 --------------------编程问答-------------------- 首先有一个基本的User类,主要包含name、address、phone等属性;
然后再集成自webconstrol的类中建立了以下属性:
private ArrayList UserList;
[
Category("Behavior"),
Description("The User collection"),
DesignerSerializationVisibility(
DesignerSerializationVisibility.Content),
Editor(typeof(ContactCollectionEditor), typeof(UITypeEditor)),
PersistenceMode(PersistenceMode.InnerDefaultProperty)
]
public ArrayList User
{
get
{
if (UserList == null)
{
UserList = new ArrayList();
}
return UserList;
}
}
然后写了编辑器类
public class UserCollectionEditor :CollectionEditor
{
public ContactCollectionEditor(Type type)
: base(type)
{
}
protected override bool CanSelectMultipleInstances()
{
return false;
}
protected override Type CreateCollectionItemType()
{
return typeof(User);
}
}
这样做在webcontrol类中是好使的 --------------------编程问答-------------------- 上面的Editor(typeof(ContactCollectionEditor), typeof(UITypeEditor))应该是Editor(typeof(UserCollectionEditor ), typeof(UITypeEditor)),
第二种方法:
写了类
[Editor(typeof(UserCollectionEditor ), typeof(UITypeEditor))]
public class UserCollection : Collection<User>
{}
然后在webcontrol类中
private UserCollection _users;
[PersistenceMode(PersistenceMode.InnerProperty),
DesignerSerializationVisibility(
DesignerSerializationVisibility.Content), Category("Behavior")]
public UserCollection Users
{
get
{
if (this._users== null)
{
this._users= new UserCollection ();
}
return this._users;
}
}
这样也是可以的,但是在UserControl类中却不行,即和属性不显示在属性列表内 --------------------编程问答-------------------- 何人解我忧? --------------------编程问答-------------------- VS IDE 的 UserControl 设计器不支持 CollectionEditorAttribute 等特性
可以尝试自己设计 Designer --------------------编程问答-------------------- 帮顶一下,我也遇到了同样的问题。 --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- 刨坟
补充:.NET技术 , ASP.NET