to:cncys(山上老虎) public class DataGridTextBoxColumn : DataGridColumnStyleDataGridTextBoxColumn是继承DataGridColumnStyle类的,但是却可以把DataGridColumnStyle强制转换成DataGridTextBoxColumn类

解决方案 »

  1.   

    MS教导我们说:·因为派生类的实例包含了基类的全部数据和成员,因此可以从派生类指向基类。·因为基类不知道它的儿子孙子,所以不能逆向引用。·你可能是在这样做吧:儿子->老子->儿子?这种情况我没试过。
      

  2.   

    to:cncys(山上老虎)
    我上面写的是微软帮助文件里的代码呀!!!
      

  3.   

    是DataGridTextBoxColumn dgtbc =new DataGridTextBoxColumn();
    MyGridColumn mgc =(MyGridColumn) dgtbc它是可以通过编译。但运行时他会
    产生一个运行异常!
    所以可以用AS或是IS来代替它。
    比如说AS
    MyGridColumn mgc =dgtbc as MyGridColumn;
    如果转换是非法的话。它会产生一个NULL的转换结果!
    用IS来看看是否可以转换。
    比如说:if(dgtbc is MyGridColumn)
               {
                      MyGridColumn mgc =dgtbc as MyGridColumn;
                }
      

  4.   

    to:snewxf(心疤)
    你说的方法我试了,mgc得到的始终为null;
    我现在的目的是要使用DataGridTextBoxColumn类中的保护方法,我只能派生一个类,然后,再用该派生类来调用在父类中受保护的方法,现在的问题是,我怎么把一个父类的实例赋给该派生类的实例呢?
      

  5.   

    为什么要将父类实例赋给派生类呢?
    你只是想用派生类的方法(属性),只需要直接生成派生类的实例就可以了阿。
    比如:
    DataGrid xx = new DataGrid();
    MyGridColumn yy = new MyGridColumn();
    xx.DataGridTextBoxColumns.Add(yy);
    这样不就可以了?
      

  6.   

    to:bbwolf(大坏狼)
    谢谢!:)结帖了!