加载序列化DisplayLayout后,为什么我的UltraGridRow ListObject为null

时间:2018-05-23 16:23:25

标签: .net infragistics ultragrid ultrawingrid

我在WinForms应用程序中使用Infragistics UltraGrid。 Infragistics v13.1

我最近添加了以二进制序列化格式保存网格布局的代码,并使用CopyFrom对象上的DisplayLayout方法加载它们。

当我加载其中一个保存的布局时,网格被适当修改,数据仍然在网格中正确显示,但是当我在一行上要求ListObject时,它返回null。网格的数据源是BindingSourceDataSourceBindingList(加载布局时此数据不会更改)。

保存:

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非空?

谢谢!

1 个答案:

答案 0 :(得分:0)

我用来获取行ListObject的代码是dgrServices.Rows。我正在加载DisplayLayout的原因是应用了Group By。这会导致行层次结构发生更改,以便它可以放置特殊的组标题行。这些正确地没有ListObject

现在我只需要弄清楚在网格中获取数据绑定行的最简单方法,并按标题行跳过这些特殊组。

http://help.infragistics.com/Help/Doc/WinForms/2012.1/CLR2.0/html/Infragistics2.Win.UltraWinGrid.v12.1~Infragistics.Win.UltraWinGrid.UltraGridBase~Rows.html