I have a converter that accepts an ObservableCollection as a parameter, and I’d like to re-evaluate it whenever a specific property on any item in the collection changes
For example: lets say I have bound a label to a collection of Person objects with a converter. The job of the converter is to count the number of Persons in the list that are female, and return “valid” for 1 female or “accepted” for 2. I’d like the converter to get called again anytime the Gender property on any Person object gets changed.
How can I accomplish this?
That’s a classic problem you end up having if you play around WPF long enough.
I’ve tried various solutions, but the one that works best is to use a BindingList like so:
Then just bind to the People collection like you would do with an ObservableCollection, except bindings will be re-evaluated when any property in its items change.
Also, please note that OnPeopleListChanged is static, so no memory leaks.
And Person should implement INotifyPropertyChanged.