private void OnItemRemoved(object sender, ItemEventArgs <IImageSet> e) { foreach (IImageSetTreeItem item in _tree.Items) { if (item is ImageSetTreeItem) { ImageSetTreeItem treeItem = item as ImageSetTreeItem; if (treeItem.ImageSet == e.Item) { _tree.Items.Remove(treeItem); OnUpdated(); break; } } } }
private void OnItemAdded(object sender, ItemEventArgs <IImageSet> e) { ImageSetTreeItem newItem = new ImageSetTreeItem(e.Item, this); ReadOnlyCollection <ImageSetTreeItem> items = GetItems(); List <IImageSet> imageSets = CollectionUtils.Map <ImageSetTreeItem, IImageSet>( items, delegate(ImageSetTreeItem item) { return(item.ImageSet); }); imageSets.Add(e.Item); if (_imageSetComparer != null) { imageSets.Sort(_imageSetComparer); } int insertIndex = imageSets.IndexOf(e.Item); if (insertIndex >= 0) { _tree.Items.Insert(insertIndex, newItem); OnUpdated(); } }