Ho un ItemsControl nella mia vista, che è associato a ObservableCollection da ViewModel. La raccolta viene riempita e in seguito viene generato un evento dalla VM alla vista (si pensi ai risultati della ricerca e all'evento SearchFinished).WPF ItemsControl - come sapere quando gli oggetti hanno terminato il caricamento, in modo da poter mettere a fuoco il primo?
Vorrei spostare lo stato attivo della tastiera sul primo elemento in un oggetto ItemsControl, ma quando lo faccio nel code-behind di View quando gestisco SearchFinished, gli elementi non sono ancora visualizzati (la raccolta è già piena, ma il rendering di wpf è asincrono e non si è ancora verificato), quindi non c'è nulla da mettere a fuoco (Focus() deve avere già costruito l'albero visivo degli elementi).
Desidero eseguire (myItemsControl.ItemContainerGenerator.ContainerFromIndex (0) come UIElement) .Focus() ;, ma poiché l'elemento 0 non è ancora stato caricato, ContainerFromIndex (0) restituisce null.
Ho provato a ritardarlo con Dispatcher.BeginInvoke ... con priorità bassa, ma questo dipende dal tempo esatto e di solito non funziona.
Come è possibile attendere il caricamento del primo elemento in ItemsControl?
Grazie, funziona perfettamente! –