Il mio prototipo visualizza "documenti" che contengono "pagine" che sono rappresentate da immagini in miniatura. Ogni documento può avere un numero qualsiasi di pagine. Ad esempio, potrebbero essere disponibili 1000 documenti di 5 pagine ciascuno o 5 documenti con 1000 pagine ciascuno o in qualche punto all'interno. I documenti non contengono altri documenti. Nel mio markup xaml ho un ListBox
, il cui ItemsTemplate
fa riferimento a innerItemsTemplate che ha anche un ListBox
. Voglio i livelli 2 di elementi selezionati in modo che io possa eseguire varie operazioni su documenti o pagine (eliminare, unire, spostare in una nuova posizione, ecc.). The innerItemsTemplate ListBox
utilizza uno WrapPanel
come ItemsPanelTemplate
.ListBox WPF con ListBox - UI Virtualization and Scrolling
Per lo scenario in cui ho un gran numero di documenti con un paio di pagine ciascuno (diciamo, 10.000 documenti con 5 pagine ciascuno), lo scorrimento grandi opere grazie all'interfaccia utente di virtualizzazione dal VirtualizingStackPanel
. Tuttavia, ho problemi se ho un numero elevato di pagine. Un documento con 1000 pagine visualizzerà solo circa 50 alla volta (qualsiasi cosa si adatti allo schermo) e quando si scorre verso il basso, l'esterno ListBox
si sposta sul documento successivo, saltando le 950 pagine che non erano visibili. Insieme a questo, non c'è VirtualzingWrapPanel
quindi la memoria dell'app aumenta davvero.
Mi chiedo se sto andando su questo nel modo giusto, in particolare poiché è una specie di difficile da spiegare! Vorrei poter visualizzare 10000 documenti con 1000 pagine ciascuno (mostrando solo ciò che si adatta allo schermo), utilizzando la virtualizzazione dell'interfaccia utente e lo scorrimento uniforme.
Come posso essere sicuro che lo scorrimento si sposti attraverso tutte le pagine del documento prima di visualizzare il documento successivo e mantenere comunque la virtualizzazione dell'interfaccia utente? La barra di scorrimento sembra spostarsi solo sul prossimo documento.
Sembra logico rappresentare "documenti" e "pagine" - con il mio attuale metodo di utilizzo di ListBox
all'interno di un ListBox
?
Apprezzerei molto qualsiasi idea tu abbia. Grazie.
Questo approccio funziona davvero per me per quanto riguarda la virtualizzazione dell'interfaccia utente. Ora ho solo bisogno di ottenere il comportamento di ListBox per la selezione degli elementi (pagine o documenti in questo caso). Come posso ottenere modalità di selezione multiple ed estese simili a ListBox? –
Inoltre, sto impostando ItemsPanelTemplate all'interno di ItemsControl su un WrapPanel, che non sembra avvolgere quando ridimensiono l'app - sembra comportarsi più come uno stackPanel. Nel complesso, sento che la risposta di cui sopra Ray mi fa andare nella giusta direzione. –
Sono così felice di essere incappato in questo post che mi ha salvato strappandomi tutti i capelli. – Bijington