集合属性是自己定义控件的一个重要属性,很多时候都是要用到的现在就说说应该怎样正确配置集合属性。接下来就用一个图片显示控件来说明集合属性的正确应用。控件实现图片切换和横向无缝滚动功能。既然要说自定义控件的集合属性首先就要熟悉一下要用到的几个元数据(Attribute)。

控件级别:
    1. [ParseChildren(true)]EditorAttribute 使 UI 类型编辑器与类型或类型成员关联。
    2. [PersistChildren(false)]

属性级别:
    3. DesignerSerializationVisibilityAttribute 和相应的 DesignerSerializationVisibility 枚举值,您可以指定:是要序列化属性的值,还是要序列化集合属性的值。Visual Studio 中对此任务提供了广泛的支持。这个很重要哦 呵呵
    4. PersistenceMode(PersistenceMode.InnerProperty)NotifyParentPropertyAttribute 应用于应该引发通知的嵌套属性,您可以指定当嵌套属性的值改变时,是否应该通知具有嵌套属性或子级属性的属性
    5. EditorAttribute 使 UI 类型编辑器与类型或类型成员关联。

属性类级别:
    6. NotifyParentPropertyAttribute 应用于应该引发通知的嵌套属性,您可以指定当嵌套属性的值改变时,是否应该通知具有嵌套属性或子级属性的属性
    7. [TypeConverter(typeof(ExpandableObjectConverter))]

    接下来就来看一下具体的代码:

控件、属性级别:

自定义控件集合属性的设计时支持    [DefaultProperty("ShowMode")]
自定义控件集合属性的设计时支持    [ParseChildren(
true
)]
自定义控件集合属性的设计时支持    [PersistChildren(
false
)]
自定义控件集合属性的设计时支持    [ToolboxData(
"<{0}:PicSwitch runat=server></{0}:PicSwitch>"
)]
自定义控件集合属性的设计时支持    
public class
 PicSwitch : WebControl
     }

属性类级别:

自定义控件集合属性的设计时支持    [TypeConverter(typeof(ExpandableObjectConverter))]
自定义控件集合属性的设计时支持    
public class
 ImageItem
    }

    点击这里下载完整控件代码
    下载完成后运行源代码生成dll文件,打开工具箱右键单击选择项,浏览生成的dll文件把控件添加到工具箱就可以像使用微软自带的控件一样来使用这个控件。
    使用说明:首先选择ShowMode指定显示模式 ,Switch:图片像幻灯片一样切换 HorizontalRoll:图片向右滚动。
ImageItems是要显示的图片集合也就是我们的集合属性。配置好这两个属性就可以显示图片了。
    到这里一个图片显示控件就搞定了,简单吧 呵呵
附后台.CS赋值的代码

自定义控件集合属性的设计时支持        List<ClassLibrary.Controls.ImageItem> items = new List<ClassLibrary.Controls.ImageItem>();
自定义控件集合属性的设计时支持        
for (int i = 0; i < 10; i++
)

相关文章: