Ability to track channel changes as immutable objects

I discovered that in some cases, it would be nice to be able to observe changes to a channel as an object. But a channel is a mutable type and does not report such changes (or others cannot obtain this information). Would it be possible to implement some kind of interface or something similar so that other objects could handle onChange on channels when something happens in them?

For context: I use DataTemplate from Avalonia, and all data nicely ‘flies through’ the widget. But it turns out that DataTemplate reacts normally to onChange and essentially only works with immutable types.