132 messaggi dal 14 febbraio 2007
Ciao a tutti

ho un controllo pivot con all'interno di ogni sezione una ListView.
Il problema è che al cambio pannello della pivot, si innesca il caricamento della lista (che recupera i dati dal database) provocando una brutta esperienza utente perché il cambio sezione non è fluido ma viene "interrotto" finchè dura il bind della lista.

Ovviamente il tentativo di buttare il caricamento della listview in un nuovo thread provoca un cross-thread

Consigli?

Ciao
Luca
probabilmente è perché il parsing e il recupero dei dati avviene sul thread UI.

il caricamento dati deve avvenire in un altro thread e solo il Binding su Thread UI

marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
132 messaggi dal 14 febbraio 2007
Ma questo discorso vale anche per le ListView il cui source è legato ad un ObservableCollection ?
Perchè ad oggi se provo a vare il caricamento dei dati in un'altro thread ricevo comunque "Invalid cross-thread access."
28 messaggi dal 15 settembre 2011
Dispatcher.BeginInvoke(() =>
{
list.ItemsSource = source;
});
});
Per accedere alla grafica da un altro thread utilizza il dispatcher

Ciao
132 messaggi dal 14 febbraio 2007
Grazie mille per la risposta.

Purtroppo però se uso questa tecnica non rendo più asincrono il caricamento della lista e torno al punto di partenza..
Anzi...credo anche che arrivi a fare il bing della lista quando ancora il source non ha finito di caricare

Hai già implementato una cosa simile e ti funziona?

Grazie ancora
Luca
28 messaggi dal 15 settembre 2011
Forse mi sfugge il problema.
Dai un'occhiata a questo tutorial
http://msdn.microsoft.com/en-us/library/hh286405%28v=vs.92%29.aspx

Spero ti possa essere di aiuto

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.