// Token: 0x06000317 RID: 791 RVA: 0x00008AB4 File Offset: 0x00006CB4 private static bool AreThereLoadedChangeHandlersInSubtree(ref FrameworkObject fo) { if (!fo.IsValid) { return(false); } if (fo.ThisHasLoadedChangeEventHandler) { return(true); } if (fo.IsFE) { Visual fe = fo.FE; int childrenCount = VisualTreeHelper.GetChildrenCount(fe); for (int i = 0; i < childrenCount; i++) { FrameworkElement frameworkElement = VisualTreeHelper.GetChild(fe, i) as FrameworkElement; if (frameworkElement != null && frameworkElement.SubtreeHasLoadedChangeHandler) { return(true); } } } foreach (object obj in LogicalTreeHelper.GetChildren(fo.DO)) { DependencyObject dependencyObject = obj as DependencyObject; if (dependencyObject != null && BroadcastEventHelper.SubtreeHasLoadedChangeHandlerHelper(dependencyObject)) { return(true); } } return(false); }
// Token: 0x06000314 RID: 788 RVA: 0x00008A70 File Offset: 0x00006C70 internal static void AddOrRemoveHasLoadedChangeHandlerFlag(DependencyObject d, DependencyObject oldParent, DependencyObject newParent) { bool flag = BroadcastEventHelper.SubtreeHasLoadedChangeHandlerHelper(d); if (flag) { if (oldParent == null && newParent != null) { BroadcastEventHelper.AddHasLoadedChangeHandlerFlagInAncestry(newParent); return; } if (oldParent != null && newParent == null) { BroadcastEventHelper.RemoveHasLoadedChangeHandlerFlagInAncestry(oldParent); } } }