Почему мой UltraGridRow ListObject имеет значение null после загрузки сериализованного DisplayLayout - PullRequest
0 голосов
/ 23 мая 2018

Я использую Infragistics UltraGrid в своем приложении WinForms.Infragistics v13.1.

Недавно я добавил код для сохранения макетов сетки в двоичном сериализованном формате и загрузки их обратно, используя метод CopyFrom для объекта DisplayLayout.

Пока яЗагрузите один из этих сохраненных макетов, сетка изменяется соответствующим образом, и данные по-прежнему корректно отображаются в сетке, но каждый раз, когда я запрашиваю ListObject в строке, он возвращает ноль.Источником данных для сетки является 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 был ненулевым?

Спасибо!

1 Ответ

0 голосов
/ 30 мая 2018

Код, который я использовал для получения строки ListObject, был dgrServices.Rows.Причина DisplayLayout, что я загружаю, имеет примененную Группу По.Это приводит к изменению иерархии строк, чтобы можно было размещать строки заголовков специальной группы.Правильно, у них нет ListObject.

Теперь мне просто нужно найти самый простой способ получить строки с привязкой к данным в сетке и пропустить эти специальные группы по строкам заголовка.

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

...