The cleanest way is to extract from this control and override the methods that report changes that interest you. For example, deduce from ContentControl and implement OnContentChanged . You may not like this approach.
If you want to detect changes in child elements or child elements of controls without receiving them, you may notice that such changes will affect the layout and therefore you can LayoutUpdated event. The problem with this approach is that you need to keep track of the children that were added earlier by checking Child or Children for changes. You should also be careful not to link ex-children, so as not to create a memory leak. But it can be done.
source share