WPF ListBox с ListBox - виртуализация UI и прокрутка

Мой прототип отображает "документы", которые содержат "страницы", которые представлены изображениями миниатюр. Каждый документ может иметь любое число страниц. Например, могло бы быть 1 000 документов с 5 страницами каждый или 5 документов с 1 000 страниц каждый или где-нибудь промежуток. Документы не содержат другие документы. В моей xaml разметке у меня есть a ListBox, чей ItemsTemplate ссылается на innerItemsTemplate, который также имеет a ListBox. Я хочу 2 уровня выбранных пунктов так, чтобы я мог выполнить различные операции на документах, или страницы (удалите, объединитесь, переместитесь в новое местоположение, и т.д.). innerItemsTemplate ListBox использование a WrapPanel как ItemsPanelTemplate.

Для сценария, где у меня есть большое количество документов с несколькими страницами каждый (говорят, 10 000 документов с 5 страницами каждый), прокрутка работает отлично благодаря Виртуализации UI VirtualizingStackPanel. Однако у меня есть проблемы, если у меня есть большое количество страниц. Документ с 1 000 страниц только отобразит приблизительно 50 за один раз (безотносительно соответствий на экране), и когда я прокручу вниз, внешнее ListBox перемещения к следующему документу, пропуская 950 страниц или так, чтобы не были видимы. Наряду с этим, существует нет VirtualzingWrapPanel таким образом, память приложения действительно увеличивается.

Я задаюсь вопросом, иду ли я об этом правильным путем, тем более, что это - вид трудных для объяснения! Я хотел бы смочь отобразить 10 000 документов с 1 000 страниц каждый (только показывающий любые соответствия на экране), с помощью Виртуализации UI и также гладкой прокрутки.

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

Кажется логичным представить "документы" и "страницы" - с моим существующим методом использования a ListBox в a ListBox?

Я был бы очень признателен за любые идеи, которые Вы имеете.Спасибо.

26
задан Adi Lester 24 July 2012 в 08:13
поделиться