On Disconnect Visual Children Method
Override this method to implement how layout and logic should behave when items are removed from a class-specific content or children property.
protected: virtual void OnDisconnectVisualChildren() = OnDisconnectVisualChildren;
protected virtual void OnDisconnectVisualChildren();
Protected Overridable Sub OnDisconnectVisualChildren ()
UIElement does not define any of the content model properties that OnDisconnectVisualChildren might act upon. Such properties are introduced deeper in an inheritance, for example at the ContentControl level.
FrameworkElement uses an OnDisconnectVisualChildren override to clear values from DataContext and Tag. In general, if you override this method you should always call the base implementation so that the framework-intentional behavior that acts on OnDisconnectVisualChildren can be preserved.
VisualTreeHelper.DisconnectChildrenRecursive is a similar static helper API that can be called by app code.