Come faccio a rilevare quando il valore di una cella è cambiato in Silverlight?
-
26-09-2019 - |
Domanda
sto lavorando in Silverlight, cercando di capire come impostare un colore del carattere cella della griglia in base al contenuto della cella.
Ho un ObservableCollection legato ad un DataGrid e miei oggetti implementare INotifyPropertyChanged così gli aggiornamenti della griglia, come posso cambiare i valori; è tutto perfettamente funzionante, tra cui lasciandomi ordinamento articoli e mantenere la selezione, mentre aggiorno gli elementi sottostanti.
So che posso utilizzare l'evento LoadingRow a cambiare i colori, ma l'unico modo per ottenere l'evento al fuoco è di cambiare l'origine dati griglie, nel qual caso il mio ordinamento va fuori dalla finestra.
Quindi, quello che voglio è un modo per entrambi i
- ciclo le righe del datagrid, trovare la necessità di cellule I, e il cambiamento il suo colore o
- implementare un personalizzato colonna che posso usare per dinamicamente impostare il colore.
Il problema è come in realtà do una di quelle cose :).
Soluzione
Si consiglia di utilizzare l'associazione dati per questo.
- vincolare il proprio colore del carattere cella per il contenuto della cella
- Crea un IValueConverter convertitore che converte il valore di un colore a seconda dalle vostre esigenze
Vedi qui per un buon esempio
http: // weblogs.asp.net/joewrobel/archive/2009/01/25/conditional-formatting-in-the-silverlight-datagrid.aspx