Possiedo un oggetto ItemsControl (non virtualizzato) che associa la sua risorsa ItemsSource a una raccolta ObeservableCollection di ViewModel. Ora, una volta caricate le istanze del modello di quantità elevate, tutti i componenti ViewModel devono essere aggiunti a ObservableCollection. Come posso aggiungere una grande quantità di ViewModels senza far cadere il thread dell'interfaccia utente?ItemsControl.ItemsSource Prestazioni MVVM
Suppongo che il thread dell'interfaccia utente si blocca perché ogni volta che viene aggiunto un nuovo elemento, ItemsControl deve aggiornarsi e ripetere il layout più e più volte.
- Devo sospendere l'associazione aggiungere tutti gli articoli e quindi riprendere? Se é cosi, come?
- Dovrei ignorare l'ObservableCollection di implementare un AddRange in modo che solo 1 CollectionChanged evento viene generato per l'aggiunta di più macchine? O in alternativa basta sostituire l'intera collezione?
- O è meglio aggiungere separatamente ogni articolo e chiamare Dispatcher.Invoke per ogni articolo separatamente? Quindi avrei sbloccato spesso .
Come gestite elenchi dinamici di grandi dimensioni che non possono essere virtualizzati?
Cosa stai usando? WPF/Silverlight? WinForms? Qualcos'altro? – slugster
Dovrebbe essere ovvio che non è Windows Form perché nessuna delle classi citate esiste nei moduli di Windows. – bitbonk
c'è qualche ragione specifica per cui il tuo itemscontrol non può usare la virtualizzazione dell'interfaccia utente? –