protected override IEnumerable <IDataModel> PopulateChildren() { var models = new List <IDataModel>(); if (Node == null) { return(models); } foreach (var item in analysis.Run(((TreeViewX)Node.TreeView).App, CancellationToken.Value)) { if (item is AnalysisError) { models.Add(new ErrorModel(((AnalysisError)item).Message)); } else { var analyses = analysis.GetChildAnalyses(item).ToArray(); if (analyses.Length == 1) { models.Add(new AnalysisModel(analyses[0], false)); } else { models.Add(new MultipleAnalysesModel((IFullName)item, analyses)); } } } models.Sort((a, b) => Comparer <string> .Default.Compare(a.Text, b.Text)); return(models); }