Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WPF MVVM - Can a single PropertyChanged update all the Data bindings of a DataTemplate?

Tags:

I have a ViewModel class which has large number of properties(Say 50). Once the data is set on to all the properties I need to update the UI. I know that the common solution is to raise PropertyChanged on all the property setters.

I am wondering if there is any way I can notify my DataTemplate to update all its bindings through a single notification? One idea is to have a IsLoaded property which raises the propertychanged but how can I use that to update the entire DataTemplate. I am interested in a total XAML solution to this.

like image 734
Jobi Joy Avatar asked Jul 16 '09 01:07

Jobi Joy


1 Answers

Finally I have got an answer from my colleague Josh Smith , it is very simple, we just need to raise a PropertyChanged event with null or String.Empty as property name. which will tell the WPF binding system to re-evaluate all the bindings of that object. I am getting two major advantage while using this.

  1. The overhead of raising individual events on each property will reduce to just one Event from View-Model to the UI. Performance will get increased.
  2. While writing code we can just use {get;set;} syntax which is clean and less writing

Assumption : As in the question I assumed here that it is a very special condition in which all my Properties are getting updated at the same time

I have a blogpost discussing this here

Update: based on the comment from kek444

like image 178
Jobi Joy Avatar answered Sep 28 '22 11:09

Jobi Joy