private async Task <IReadOnlyList <ObjectTreeElement> > QueryChildrenAsync(IEditorProvider provider)
        {
            var targets = await provider.GetChildrenAsync(Editor.Target);

            List <Task <IObjectEditor> > editorTasks = new List <Task <IObjectEditor> > ();

            foreach (object target in targets)
            {
                editorTasks.Add(provider.GetObjectEditorAsync(target));
            }

            IObjectEditor[] editors = await Task.WhenAll(editorTasks);

            return(editors.Select(e => new ObjectTreeElement(provider, e)).ToArray());
        }