private static ObjectBrowserItemViewModel GetChildByName(ObjectBrowserItemViewModel item, string name) { var children = GetChildren(item); ObjectBrowserItemViewModel child; children.TryGetValue(name, out child); return(child); }
private static ObjectBrowserItemViewModel FindItemByName(ObjectBrowserItemViewModel item, string name) { var res1 = GetChildByName(item, name); if (res1 != null) { return(res1); } var children = GetChildren(item); foreach (var i in children) { var res2 = FindItemByName(i.Value, name); if (res2 != null) { return(res2); } } return(null); }
private static Dictionary <string, ObjectBrowserItemViewModel> GetChildren(ObjectBrowserItemViewModel vm) { var property = vm.GetType().GetProperty("Children", BindingFlags.NonPublic | BindingFlags.Instance); return(property.GetValue(vm) as Dictionary <string, ObjectBrowserItemViewModel>); }