| 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 |
| 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() |