[c#] Perché nessuno usa l'INotifyPropertyChanging?



Answers

INotifyPropertyChanging è un'ottimizzazione da utilizzare con Linq to SQL. Quando un oggetto implementa questa interfaccia, utilizza l'evento che cambia come segnale per memorizzare il vecchio valore della proprietà. Se l'oggetto non implementa questa interfaccia, memorizzerà sempre nella cache i valori delle proprietà, aumentando l'utilizzo della memoria. Vedi Come l'interfaccia INotifyPropertyChanging aiuta a limitare il consumo di memoria per maggiori dettagli.

Question

So che MVVM utilizza pesantemente l'INotifyPropertyChanged, ma non ho mai visto alcun utilizzo di INotifyPropertyChanging. Qualche ragione per cui?

Se volessi usarlo, quale sarebbe un buon modo per integrare questo nel mio MVVM Framework? So che non dovresti usare MessageBox sul tuo ViewModel perché non puoi testare l'unità. Quindi, come si dovrebbe fare per lanciare un avviso, quindi continuare con il PropertyChange se applicabile?




INotifyPropertyChanging viene richiamato subito prima che una proprietà cambi. Perché importante? In modo che un gestore di eventi esterno possa generare un'eccezione e impedire la modifica. E perché vorresti farlo? Un giorno potrebbe essere la tua unica soluzione alternativa a un bug nella base di codice di qualcun altro, quindi non essere così veloce da rimuovere il portello di fuga.




Links



Tags

c# c#   wpf   mvvm