我在WinForms应用程序中使用Infragistics UltraGrid。 Infragistics v13.1
。
我最近添加了以二进制序列化格式保存网格布局的代码,并使用CopyFrom
对象上的DisplayLayout
方法加载它们。
当我加载其中一个保存的布局时,网格被适当修改,数据仍然在网格中正确显示,但是当我在一行上要求ListObject
时,它返回null。网格的数据源是BindingSource
,DataSource
是BindingList
(加载布局时此数据不会更改)。
保存:
Dim MS As New IO.MemoryStream()
ugl.Save(MS, Infragistics.Win.UltraWinGrid.PropertyCategories.All)
Return MS.ToArray()
负载:
Private Function ConvertToUltraGridLayout(data As Byte()) As UltraGridLayout
Dim ugl As New UltraGridLayout()
Dim MS As New IO.MemoryStream(data)
MS.Seek(0, IO.SeekOrigin.Begin)
ugl.Load(MS, Infragistics.Win.UltraWinGrid.PropertyCategories.All)
Return ugl
End Function
dgrServices.DisplayLayout.CopyFrom(ConvertToUltraGridLayout(lOption.Layout))
我需要做些什么才能使ListObject
非空?
谢谢!
答案 0 :(得分:0)
我用来获取行ListObject的代码是dgrServices.Rows
。我正在加载DisplayLayout
的原因是应用了Group By。这会导致行层次结构发生更改,以便它可以放置特殊的组标题行。这些正确地没有ListObject
。
现在我只需要弄清楚在网格中获取数据绑定行的最简单方法,并按标题行跳过这些特殊组。