【问题标题】:How do I know what type I can cast to on a GetRow()?我如何知道可以在 GetRow() 上转换为什么类型?
【发布时间】:2012-02-08 14:28:20
【问题描述】:
void gridControl1_DoubleClick(object sender, EventArgs e) {
    GridControl grid = sender as GridControl; 
    DXMouseEventArgs args = e as DXMouseEventArgs;
    BaseHitInfo hitInfo = grid.Views[0].CalcHitInfo(args.Location);
    GridHitInfo gridHit = hitInfo as GridHitInfo;
    if (GridHitTest.RowCell == gridHit.HitTest) {
        int rowHandle = gridHit.RowHandle;
        grid.MainView.GetRow(rowHandle);//GetRow returns Object. I need to cast this to a Type to make it useful
    }
}

我有用于 GetRow() 的 documentation。我无法提取比通过智能感知提取更多有用的信息。

我怎么知道我可以将它投射到什么位置?

【问题讨论】:

    标签: c# winforms devexpress xtragrid


    【解决方案1】:

    文档对我来说似乎相当清楚:

    此方法的返回值取决于视图数据源的类型。如果数据源是 System.Data.DataTable 或 System.Data.DataView,则此方法返回 System.Data.DataRowView 对象。如果数据源是自定义项列表,则返回相应的列表项。

    那么你的来源是什么?是DataTable/DataView吗?如果是这样,请投到DataRowView。如果它是List<T> 或类似的东西,则转换为元素类型。我假设您确实在编译时知道您的数据源类型是什么?

    【讨论】:

    • 好的。谢谢。它由 List. 填充
    • @P.Brian.Mackey:那么你就投到SomeModel,看起来。
    • @John Skeet - 确实。我错过了文档中的评论。我正在一家新公司从事一个新项目,并赶在紧迫的期限内。所以我犯了愚蠢的错误。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多