如何正确设置DevExpress banddedgridview的数据源与动态数量的频带和列

本文关键字:动态 设置 何正确 DevExpress banddedgridview 数据源 | 更新日期: 2023-09-27 18:10:05

我使用BandedGridView的WinForms。我只在运行时获得有关banddedgridview结构(频带和列的数量)的信息。所以我必须手动填充。我可以正确地创建完整的结构,但我不明白如何用数据填充它。我尝试用两种方式来做:

1。使用GridControl。DataSource属性。但这里我有问题,因为我有动态的列数所以我不能创建静态类它将代表GridViewRow类属性将代表列字段。我只是有数据在这种形式:列表(代表每一行)和内部的OuterClass我有属性类型列表(代表GridView中的每一列)。我尝试创建动态对象,表示完整的行,并设置为GridControl。DataSource属性BindingList,但这次它在绑定时触发NullReferenceException。

DevExpress.XtraGrid.Columns.GridColumn.get_ColumnType ()DevExpress.XtraGrid.Views.Base.ColumnView.GetColumnDefaultRepositoryItem (GridColumn列)DevExpress.XtraGrid.Views.Grid.GridView.GetRowCellRepositoryItem (Int32rowHandle, GridColumn列)DevExpress.XtraGrid.Views.Grid.ViewInfo.GridViewInfo.CreateCellInfo (GridDataRowInfori, GridColumnInfoArgs columnInfo) inDevExpress.XtraGrid.Views.Grid.ViewInfo.GridViewInfo.CalcRowCellsDrawInfo (GridDataRowInfo, gridcolumninfo, columninfo) inDevExpress.XtraGrid.Views.Grid.ViewInfo.GridViewInfo.CalcDataRow (GridDataRowInfori, griddrow row, griddrow nextRow) inDevExpress.XtraGrid.Views.Grid.ViewInfo.GridViewInfo.CalcRowsDrawInfo ()在DevExpress.XtraGrid.Views.Grid.ViewInfo.GridViewInfo.CalcGridInfo ()

但是我默认保留所有列类型,并用typeof(string)的值填充列。我检查每列的FieldName,并检查动态对象的相同属性名称-它等于。

2。所以我尝试另一种方法。尝试用AddNewRow()和SetRowCellValue()方法手动填充我的gridview。但现在当我不填充GridControl时。DataSource属性,只是调用AddNewRow() -在我的gridview没有变化。我在格子里看不到一行。当我选中GridView。FocusedRowHandle它返回负值,所以我理解新行没有添加到我的视图。

所以我需要帮助,我如何在我的情况下填写banddedgridview ?

如何正确设置DevExpress banddedgridview的数据源与动态数量的频带和列

我找到解决办法了。我犯了一个错误,当手动生成波段和列。我已经将列附加到乐队列集合,但没有将其附加到banddedgridview列集合。因此,当我修复此问题时,数据源被成功填充。