Logo UGIdotNET

Discussione 'WPF MVVM Refresh'

# Pubblicato il 20 mag 2009 16.18 - Rispondi
Antonio Budano
WPF MVVM Refresh
Ciao,
ho un problema di refresh dello schermo (almeno credo...).
La mia entità implementa IDataErrorInfo, ho una ObservableCollection delle mie entità esposta come proprietà del ViewModel, messo in binding nella view su una XceedDataGrid. La XceedDataGrid è posizionata su una TabPage (ho implementato quanto esposto da un articolo di Josh Smith di gennaio che utilizza i DataTemplate per fare il rendering della collection di viewModels).

Il problema è questo: validando i dati, i messagi di errore esposti tramite l'interfaccia IDataErrorInfo non vengono visualizzati nella XceedDataGrid, a meno che non non cambi pagina nel TabControl e poi ritorni sulla pagina contenente la griglia. Non mi pare sia un problema di XceedDataGrid ma piuttosto di WPF.

Ho provato ad esporre un evento dal ViewModel che quando eseguito, nel code behind della view faccio qualcosa del genere per forzare il refresh, in questa maniera funziona.

Refresh()
{
object dataContext = this.DataContext;
this.DataContext = null;
this.DataContext = dataContext;
}

Questa modalità mi consente il refresh ma crea qualche altro problema.

Come posso fare per visualizzare i messaggi di errore senza dover cambiare pagina e tornare indietro nel TabControl?

Grazie
Antonio
# Pubblicato il 21 mag 2009 6.57 - Rispondi
Corrado Cavalli
Re: WPF MVVM Refresh
A me sembra più un problema della griglia che di WPF...
Visto che usi MVVM potresti creare un attached behavior che quando scatta l'evento Validation.Error cambia fa quello che fai nel metodo Refresh()

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185