I have mentioned that i can only use 'Where' on a collection when the children implement INotifyPropertyChanged.
In my scenario i have a ReadOnlyObservableCollection. The children of this collection have some properties. This properties can only be set in the constructor and NEVER change.
Thats why they dont implement INotifyPropertyChanged. Without this interface i cannot use CLINQs Where-Method. But CLINQ would be very usefull in this scenario because my collection is continously adding and removing items.
My CLINQ-query would look like this:
var query = from obj in myReadOnlyObsCol where obj.Value <= otherObject.MaxValue orderby obj.Value;
The obj.Value-Property is fixed. But the otherObject is implementing INotifyPropertyChanged because its MaxValue-Property is updating sometimes.
I can not use a CollectionViewSource because the Filter-Event is not fired everytime when otherObject.MaxValue is changing. I would have to call refresh() all the time manually.
As a temporary workaround im goint to implement INotifyPropertyChanged in my class anyway. But i dont like implementing useless event that get never fired...
It would be very usefull if you could make Where() and the othe Methods also be callable for types that does not implement PropertyChanged. Maybe you can check if the interface is implemented and if not you just dont register a PropertyChanged-Handler and
always work with the current value.