Automatic INotifyPropertyChanged Implementation through T4 code generation?
- by chrischu
I'm currently working on setting up a new project of mine and was wondering how I could achieve that my ViewModel classes do have INotifyPropertyChanged support while not having to handcode all the properties myself.
I looked into AOP frameworks but I think they would just blow up my project with another dependency.
So I thought about generating the property implementations with T4.
The setup would be this: I have a ViewModel class that declares just its Properties background variables and then I use T4 to generate the Property Implementations from it.
For example this would be my ViewModel:
public partial class ViewModel
{
private string p_SomeProperty;
}
Then T4 would go over the source file and look for member declarations named "p_" and generate a file like this:
public partial class ViewModel
{
public string SomeProperty
{
get
{
return p_SomeProperty;
}
set
{
p_SomeProperty= value;
NotifyPropertyChanged("SomeProperty");
}
}
}
This approach has some advantages but I'm not sure if it can really work. So I wanted to post my idea here on StackOverflow as a question to get some feedback on it and maybe some advice how it can be done better/easier/safer.