The change is not being reflected in the UI because when you Notify Property Change() the entire collection, instead of the indiviual property of the individual item, WPF detects it is actually the same instance (the same object reference to the same collection) as before, so nothing seems to have changed.
This morning I woke up to find a rather curious question posted to the WPF Forum.
Suppose that an entity which has “started” is suddenly “stopped” by some part of the application.
The problem with the situation is that when a bound business object has a property modified, the property change notification is not noticed by the Content Presenter which displays that object.
The business object class implements INotify Property Changed, but since the Content Presenter is bound directly to the object (and not bound to a property on the object) its Property Changed event is irrelevant to the Binding.
From here I can check a box beside each to turn them on or off, and if I select a file, information about it appears in the status bar of this Window.
If I turn a File off, its text colour is supposed to appear light grey in the List View, but it does not do this automatically; I have to close the Window and re-open it.
A fellow by the name of Waseem Sadiq is binding a Content Presenter directly to a business object (i.e.
not to properties on the object) and using the Content Presenter’s Content Template Selector to load the appropriate data template at runtime.
In the XAML I have bound the Items Source to the Customer Summary Details Property.
This was so I didnt have to bind to Selected Customer. The Selected Customer property has a get and a set method, and the set calls On Property Changed for the OTHER property, Customer Summary Details, letting the XAML know that the underlying collection has changed and to update.
You then create a value converter which takes in a business object and emits a wrapper around it.