以上介绍了内部嵌套形式属性声明的方法。总结起来分为两种情况:一是所开发控件从Control派生,则需要设置五个设计时特性ParseChildrenAttribute(true)、PersistChildren(false)、DesignerSerializationVisibility、NotifyParentProperty和PersistenceMode。前两个特性在控件类前设置,用于告诉编译器将控件标记内的内容为属性,需要解析为属性;后三个特性在属性前指定,用于指示编译器此属性为内部嵌套形式属性,在应用控件属性时,必须采用嵌套形式。二是所开发控件从WebControl派生,这种情况比较简单,只需设置上文中后3个设计时特性即可。
3. 实现内部嵌套形式默认复杂属性
内部嵌套形式默认属性与内部嵌套形式属性非常类似,它通常用于设置某个控件的集合属性。例如,标准服务器控件中的DataList、DropDownList控件中的属性均为内部嵌套形式默认属性。
为了实现这种形式的属性,主要需设置两个元数据属性:一是在控件类前设置ParseChildren(true, "DefaultPropertyName"),指定该控件中嵌套的标记表示属性,而非子控件,同时将嵌套属性分析为该控件的集合属性;二是在集合属性前设置特性PersistenceMode(PersistenceMode.InnerDefaultProperty),表示将该属性定义为控件的默认属性。
4. 小结
本文介绍了创建复杂属性的实现方法。这是实现自定义服务器控件过程中的重点和难点内容。在随后的一篇文章中,我们将通过示例来加深对复杂属性实现方法的认识。
您可能感兴趣的文章: