private async Task AddSimilarElementsAsync(List<object> elements, object baseValue, VisualTreeItemViewModel 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 StubVisualTreeItemViewModel))
{
await item.LoadChildrenAsync();
}
if (item.Children == null)
{
return;
}
foreach (var child in item.Children)
{
await this.AddSimilarElementsAsync(elements, baseValue, (VisualTreeItemViewModel)child);
}
}
#endregion