private void LoadWebResources(IEnumerable <WebResource> results) { ObservableCollection <EntityTreeViewItem> list = new ObservableCollection <EntityTreeViewItem>(); var groupList = results .GroupBy(a => a.WebResourceType.Value) .OrderBy(a => a.Key); foreach (var group in groupList) { var groupName = group.First().FormattedValues[WebResource.Schema.Attributes.webresourcetype]; BitmapImage image = null; if (_typeImageMapping.ContainsKey(group.Key)) { image = _typeImageMapping[group.Key]; } var node = new EntityTreeViewItem(groupName, null, image); var nodeEntity = TreeNodeEntity.Convert(group); FullfillTreeNode(node, nodeEntity, image); list.Add(node); } ExpandNode(list); this.trVWebResources.Dispatcher.Invoke(() => { this.trVWebResources.BeginInit(); this.trVWebResources.ItemsSource = list; this.trVWebResources.EndInit(); }); }