簡體   English   中英

無法將類型'system.reflection.fieldinfo'隱式轉換為'devexpress.dataaccess.excel.fieldinfo'

[英]cannot implicitly convert type 'system.reflection.fieldinfo' to 'devexpress.dataaccess.excel.fieldinfo'

錯誤圖片

在此先感謝大家。...我正在使用devexpress xtragridcontrol根據高行顯示數據。 但是有一個問題,無法將類型system.reflection.fieldinfo隱式轉換為devexpress.dataaccess.excel.fieldinfo,任何建議...

這是我的代碼

private void UpdateGridSize()
{
    GridViewInfo viewInfo = (GridViewInfo)gridView2.GetViewInfo();
    DevExpress.DataAccess.Excel.FieldInfo fi = typeof(GridView).GetField("scrollInfo", BindingFlags.Instance | BindingFlags.NonPublic);
    ScrollInfo scrollInfo = (ScrollInfo)fi.GetValue(gridView2);
    int width = viewInfo.ViewRects.IndicatorWidth;
    foreach (GridColumn column in gridView1.VisibleColumns)
    {
        if (viewInfo.GetColumnLeftCoord(column) < viewInfo.ViewRects.ColumnPanelWidth)
            gridView1.LeftCoord = width;
        width += viewInfo.ColumnsInfo[column].Bounds.Width;
    }
    if (scrollInfo.VScrollVisible) width += scrollInfo.VScrollSize;
    int height = viewInfo.CalcRealViewHeight(new Rectangle(0, 0, ClientSize.Width, ClientSize.Height), true);
    if (scrollInfo.HScrollVisible) height += scrollInfo.HScrollSize;
    width = Math.Max(GridMinWidth, width);
    width = Math.Min(ClientSize.Width - gridControl1.Location.X, width);
    height = Math.Max(GridMinHeight, height);
    height = Math.Min(ClientSize.Height - gridControl1.Location.Y, height);
    gridControl1.Size = new Size(width, height);
    gridView1.LayoutChanged();
}

反射類型和DevExpress FieldInfo類型無關,因此不兼容分配。 創建一個新對象並分配值

var fieldInfo = typeof(GridView).GetField("scrollInfo",
    BindingFlags.Instance | BindingFlags.NonPublic); // Reflection

var fi = new DevExpress.DataAccess.Excel.FieldInfo {
    Name = fieldInfo.Name, Type = fieldInfo.MemberType
};

還是您要執行以下操作:

viewInfo.GetField(...)

代替

typeof(GridView).GetField(

根據DevExpress 說法, GridViewInfo類未記錄在案並可能會發生更改

該類未記錄,因為它描述了內部可視化網格表示形式,可以根據開發要求對其進行動態更改。 我們傾向於防止客戶使用此類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM