Asp.net 3.5控件和组件开发技术系列—服务器控件属性(四)
e 类型的对象, 如下所示:
CreateInstance 一般用于不可变但希望为其提供可变属性的对象。 接下来方法GetPropertiesSupported 表示使用指定的上下文返回该对象是否支持单独设置属性 功能。如果返回true ,则属性窗口中属性布局如图4-32 所示。如果返回false ,则属性布局如图 4-33 所示。 图4-32 返回true 时的属性布局 图4-33 返回false 时的属性布局 方法GetProperties 是对GetPropertiesSupported=true 时的属性列表的实现逻辑。代码就一 句:
取得SolidCoordinate 的属性,并以attributes 数组为筛选条件,取得属性后依次以X ,Y , Z 的顺序进行排序,最后返回排序后的PropertyDescriptorCollection 类型的对象。 类型转换器类SolidCoordinateConverter 已经讲解完毕,可能一些重载方法理解起来比较费劲 ,在开始学习只要理解CanConvertFrom ,CanConvertTo ,ConvertFrom,ConvertTo 就可以了,最 常用的也是这几个方法;其他的几个重载方法GetCreateInstanceSupported ,CreateInstance , GetPropertiesSupported ,GetProprties 可以在开发过程中逐步理解,这里只是说明它们的功能 ,事实上对SolidCoordinate 转换器示例只需要重写CanConverterFrom,ConvertFrom 等前面几个 方法就够了。 最后实现主控件,代码如下:
主控件仅包含一个SolidCoordinate 类型的属性。在属性上面并没有如下代码:
关联类型转换器的语句,因为在SolidCoordinate 类中指定了,这里就不必再指定。在属性前 面和属性类型前面指定转换器的作用是相同的,但它们有两点区别: 在类中指定类型转换器一般用于一对一的时候,即SolidCoordinateConverter 就是只用于 SolidCoordinate 类型的转换器。 在属性前面指定转换器一般用于此属性可能(不是必须)使用某个转换器的时候,换句话说就 是此属性或许还使用其他的转换器,或不需要转换器;或者此属性的类型为系统类型,不是我们定 义的类型,这时候我们也没有机会为类指定转换器,只能在属性上指定转换器,下节讲的集合列表 类型转换器就是如此。另外,这样指定的好处是更加灵活。 编译主控件,并将控件放置到页面中,在页面设计器属性窗口就可以看到我们已经实现的转换 器属性,如图4-33 所示。 然后,切换到源代码视图,则会看到如下代码:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |