Domanda

Ho un Silverlight DataGrid che contiene una singola colonna modello che mostra un controllo utente. Il controllo utente ha una barra di avanzamento per rappresentare l'elaborazione e al termine dell'elaborazione un'animazione nasconde la barra di avanzamento e mostra un'etichetta finita.

Esistono due casi in cui il datagrid sembra non ridisegnarsi:

prima , quando un utente esegue molto scorrimento, il datagrid inizierà ridisegnando l'animazione quando viene visualizzato il controllo utente e raggiungerà infine un punto in cui non ridisegna nulla.

Secondo , c'è un evento click nel controllo utente che mostra un popup. Quando il popup viene chiuso, il controllo utente non riesce a ridisegnarsi correttamente.

Qualche idea sul perché si verifichi questo comportamento e come aggirarlo?

È stato utile?

Soluzione

La risposta precedente è corretta. Ho scoperto che a volte devi gestire correttamente gli eventi Loading_Row e Unloading_Row se vuoi che qualcuno dei tuoi controlli si comporti correttamente. Nei miei casi avere le proprietà dei controlli effettivamente associate a un oggetto per funzionare al meglio. Se provi a fare affidamento su animazioni e visibilità e simili, vedrai un comportamento strano, ma se associ la barra di avanzamento a un oggetto che mantiene l'avanzamento per ciascun elemento dietro le quinte, ogni volta che viene mostrata quella riga, si riavvolge e ridisegna.

Altri suggerimenti

Devi capire che un DataGrid non ha un'istanza del tuo controllo per ogni riga della griglia. L'origine dati potrebbe avere milioni di righe, mentre la griglia non ha bisogno di più istanze del tuo controllo di quelle che si adatteranno allo schermo. Ciò significa che quando si scorre, ad esempio, non rivela istanze del controllo precedentemente invisibili; assegna ai controlli attualmente visibili tutti i valori necessari per rendere la visualizzazione corretta per la posizione di scorrimento corrente.

Non so se esiste una soluzione alternativa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top