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);
}
}