WPF ListBox с ListBox - виртуализация и прокрутка пользовательского интерфейса
Мой прототип показываетдокументы» которые содержатстраницы» которые представлены миниатюрными изображениями. Каждый документ может иметь любое количество страниц. Например, может быть 1000 документов по 5 страниц каждый или 5 документов по 1000 страниц каждый или где-то между ними. Документы не содержат других документов. В моей разметке XAML у меня естьListBox
, чьяItemsTemplate
ссылается на innerItemsTemplate, который также имеетListBox
, Мне нужны 2 уровня выбранных элементов, чтобы я мог выполнять различные операции с документами или страницами (удалять, объединять, перемещать в новое местоположение и т. Д.). InnerItemsTemplateListBox
используетWrapPanel
как.ItemsPanelTemplate
Для сценария, где у меня есть большое количество документов по несколько страниц каждый (скажем, 10000 документов по 5 страниц каждый), прокрутка прекрасно работает благодаря виртуализации пользовательского интерфейсаVirtualizingStackPanel
, Однако у меня есть проблемы, если у меня есть большое количество страниц. Документ с 1000 страницами будет отображаться только около 50 одновременно (что умещается на экране), и когда я прокручиваю вниз, внешнийListBox
переходит к следующему документу, пропуская 950 страниц или около того, которые не были видны. Наряду с этим, нетVirtualzingWrapPanel
так что память приложения действительно увеличивается.
Мне интересно, правильно ли я поступаю, особенно потому, что это сложно объяснить! Я хотел бы иметь возможность отображать 10000 документов по 1000 страниц каждый (показывая только то, что умещается на экране), используя виртуализацию пользовательского интерфейса, а также плавную прокрутку.
Как я могу убедиться, что прокрутка перемещается по всем страницам документа, прежде чем отобразится следующий документ, и при этом сохранить виртуализацию пользовательского интерфейса? Полоса прокрутки, кажется, только перейти к следующему документу.
Кажется ли логичным представлять "документы» а также "страницы» - с моим текущим методом использованияListBox
в пределах?ListBox
Я был бы очень признателен за любые ваши идеи. Благодарю вас.