The problem is that you have to pass the name of the property as a string when you fire the event from each property setter.In this post I will show you a better way, namely, how you can use lambda expressions instead of strings to pass the property name.
By creating my own dependency property on my user control, I’ve now made the filter definition controlled by the view model.
Anyone who’s developed a UI application using Windows Forms, WPF or Silverlight is probably aware that you have to implement the INotify Property Changed interface to get two-way data binding between UI elements and an underlying data source.
Define a dependency property in your User Control’s code-behind.
The Property Changed Callback event of your property should contain the troublesome code that can only be set in code-behind.
For example, you can have a button on your UI that is bound to a command in the view model.
The command sets the public property on the view model that’s bound to the new dependency property.The reason for this is that Person needs to inform the binding that the Age property has changed so that it can get the new value.This is accomplished by implementing INotify Property Changed on Person and firing the Property Changed event in each property setter.A convenience place for this helper method is in a base class, which can also check to make sure the Property Changed event is not null.We can then refactor our Person class to call Notify Property Changed in each property setter.That way, , which will prevent your data bindings from breaking should you change a property name on your class and forget to update the property changed argument.