public static void Recursive <TDependencyObject, TStyle, TDependencyProperty>( this ITreeNodeProvider <TDependencyObject> treeNodeProvider, IDependencyPropertyService <TDependencyObject, TStyle, TDependencyProperty> dependencyPropertyService, TDependencyObject element, int level, TDependencyObject expectedParent ) where TDependencyObject : class where TStyle : class where TDependencyProperty : class { if (element == null) { return; } if (expectedParent != treeNodeProvider.GetParent(element)) { Debug.WriteLine("!!!!!"); Debug.WriteLine($"Expected parent: { dependencyPropertyService.GetName(expectedParent) }"); Debug.WriteLine($"Actual parent: { dependencyPropertyService.GetName(treeNodeProvider.GetParent(element)) }"); Debug.WriteLine("!!!!!"); } Debug.WriteLine(new String(' ', level) + element.GetType().Name + "#" + dependencyPropertyService.GetName(element)); var children = treeNodeProvider.GetChildren(element); foreach (var child in children) { Recursive(treeNodeProvider, dependencyPropertyService, child, level + 1, element); } }
private void Recursive(TDependencyObject element, int level, TDependencyObject expectedParent) { if (element == null) { return; } if (expectedParent != treeNodeProvider.GetParent(element)) { Debug.WriteLine("!!!!!"); Debug.WriteLine($"Expected parent: { dependencyPropertyService.GetName(expectedParent) }"); Debug.WriteLine($"Actual parent: { dependencyPropertyService.GetName(treeNodeProvider.GetParent(element)) }"); Debug.WriteLine("!!!!!"); } Debug.WriteLine(new String(' ', level) + element.GetType().Name + "#" + dependencyPropertyService.GetName(element)); var children = treeNodeProvider.GetChildren(element); foreach (var child in children) { Recursive(child, level + 1, element); } }
public static void Recursive <TDependencyObject, TStyle, TDependencyProperty>( this ITreeNodeProvider <TDependencyObject, TDependencyProperty> treeNodeProvider, IDependencyPropertyService <TDependencyObject, TStyle, TDependencyProperty> dependencyPropertyService, TDependencyObject element, int level, TDependencyObject expectedParent, SelectorType type ) where TDependencyObject : class where TStyle : class where TDependencyProperty : class { if (element == null) { return; } var providerParent = treeNodeProvider.GetParent(element, type); if (expectedParent != providerParent) { Debug.WriteLine($"!!!!! element: '{element.ToString()}'"); Debug.WriteLine($"Expected parent: { dependencyPropertyService.GetName(expectedParent) } {expectedParent.GetType().Name} '{expectedParent.ToString()}'"); Debug.WriteLine($"Provider parent: { (providerParent != null ? dependencyPropertyService.GetName(providerParent) : "NULL!") } {(providerParent != null ? treeNodeProvider.GetParent(element, type).GetType().Name : "NULL!")}"); Debug.WriteLine("!!!!!"); } Debug.WriteLine(new String(' ', level * 2) + element.GetType().Name + "#" + dependencyPropertyService.GetName(element)); var children = treeNodeProvider.GetChildren(element, type); foreach (var child in children) { Recursive(treeNodeProvider, dependencyPropertyService, child, level + 1, element, type); } }