一些控件的属性是个类(就象DataTable里的Rows,C1FlexGrid里的Rows),我想给这样的属性添加新的属性、重写方法,请问要怎么做谢谢!

解决方案 »

  1.   

    如果你要改变DataTable.Rows属性,你必需设计一个新类,
    如MyDataTable:DataTable
      MyDataRow:DataRow,也许DataRow是不可继承的.这样你就组装了一个新类,可参考设计模式内的Composite模式.
      

  2.   

    例如我做了基于DataTable的类MyDataTable,我不知道怎么在这个MyDataTable给Rows添加新属性NA1
      

  3.   


      20分太少了,写了我半小时,源代码在这里http://www.vjsdn.com/bbs/bbsTopicDetails.aspx?pid=397
      

  4.   

    我也一直使用JonnySun的方法实现这个目的。
    但是有一点不方便的,就是不能像原来那样在form上直接布局,比如拖动控件边框改变大小,调整位置等等,一切都要通过代码实现。做成用户控件应该可以避免这个问题,但我用户控件还不会,JonnySun能不能也给个例子?
      

  5.   


    试了一下,发现有个问题:DataRows可以在后面加上[1]得到有关属性,[1][1]可以得到值,但用你的方法我无法这样操作,就是说我添加的自定义属性不能象DataRow可以到每行
      

  6.   

    DataRows可以在后面加上[1]得到有关属性 //因为DataRows是一个集合,[N]就是获取它的元素,元素是一个对象(DataRow)[1][1]可以得到值  //DataRows[1][1] ->   DataRow[1]  说明DataRow也是一个集合,比如它是DataCell的集合   DataRow[1]就是这一行的第二个单元格所以你要设计,需要“一整套”:
    1.定义DataCell:基本属性至少需要:所在列、值、类型
    2.定义DataRow:它是DataCell的集合,如class DataRow:List<DataCell>{}
    3.定义DataRows:它是DataRow的集合
    4.定义MyDataTable:它有一个属性,类型就是DataRows
      

  7.   

    选自《庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术》第4章  服务器控件属性   
    http://blog.csdn.net/ChengKing/archive/2009/01/01/3678774.aspx
      

  8.   

    本章内容4.1  控件属性的作用4.2  简单属性4.3  属性的设计时特性4.4  复杂属性4.5  深入研究——定制自己的属性编辑器4.6  类型转换器4.7  实现自定义属性
    第4章  服务器控件属性  
    http://blog.csdn.net/ChengKing/archive/2009/01/01/3678774.aspx
      

  9.   

     我那个思路已经告诉你了,算了,好人做到底,送佛送上天第2个版本http://www.vjsdn.com/bbs/bbsTopicDetails.aspx?pid=411