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

Я был бы очень признателен за любые ваши идеи. Благодарю вас.

Ответы на вопрос(5)

Ваш ответ на вопрос