private async Task AddSimilarElementsAsync(List <object> elements, object baseValue, TreeItemViewModel item) { var dobvm = item as DependencyObjectViewModel; if (dobvm != null) { object itemValue; if (TryGetValue(dobvm.Model, out itemValue) && object.Equals(itemValue, baseValue)) { elements.Add(item); } } if (item.Children == null || item.Children.Count == 0 || (item.Children.Count == 1 && item.Children[0] is StubTreeItemViewModel)) { await item.LoadChildrenAsync(); } if (item.Children == null) { return; } foreach (var child in item.Children) { await this.AddSimilarElementsAsync(elements, baseValue, child); } }
private async Task AddSimilarElementsAsync(List<object> elements, object baseValue, TreeItemViewModel item) { var dobvm = item as DependencyObjectViewModel; if (dobvm != null) { object itemValue; if (TryGetValue(dobvm.Model, out itemValue) && object.Equals(itemValue, baseValue)) { elements.Add(item); } } if (item.Children == null || item.Children.Count == 0 || (item.Children.Count == 1 && item.Children[0] is StubTreeItemViewModel)) { await item.LoadChildrenAsync(); } if (item.Children == null) { return; } foreach (var child in item.Children) { await this.AddSimilarElementsAsync(elements, baseValue, child); } }