Implement INotifyPropertyChanged on generated Entity Framework classes Implement INotifyPropertyChanged on generated Entity Framework classes wpf wpf

Implement INotifyPropertyChanged on generated Entity Framework classes


If you follow the recommended MVVM pattern for WPF, you can treat your generated classes as the Model, and then write ViewModel wrappers that implement INotifyPropertyChanged. The ViewModel classes would access your DB classes and expose properties that you can bind to your UI in XAML.

As noted in your comment, this can result in a lot of work writing boilerplate code, but there are some ways to deal with that. See this question for some ideas.

While more work at first, the MVVM pattern can definitely pay off in the long run if you ever need to do any intermediate formatting or processing, or if you need to change your database classes without affecting the UI.


There's a NuGet package called PropertyChanged.Fody that makes adding INotifyPropertyChanged to a classes properties really simple. Once you've installed the package just add the [ImplementPropertyChanged] attribute to any class or partial class and the package will add INotifyPropertyChanged for you.

Here's a simple example of it's use;

using PropertyChanged;[ImplementPropertyChanged]public partial class Order{}

See GitHub for more information.


I needed to do the same recently but with Winforms. If you don't want to follow the MVVM pattern as suggested by bde you can modify the t4 template to implement INotifyPropertyChanged on your generated entities.

This answer helped me: https://stackoverflow.com/a/12192358/1914530