public void Execute(object parameter) { ICraftingTreeItem item = (ICraftingTreeItem)_craftingTreeControl.CraftingTreeView.SelectedItem; var treeViewItem = _craftingTreeControl.CraftingTreeView.ItemContainerGenerator.ContainerFromItem(item) as TreeViewItem; treeViewItem.IsSelected = false; _craftingTreeControl.Items.Remove(item); }
/// <summary> /// Gets all items within the Crafting tree. Roots, compound ingredients, and base ingredients in one list. /// </summary> /// <param name="rootNodes"></param> /// <returns></returns> public static IEnumerable <ICraftingTreeItem> Descendants(this IEnumerable <ICraftingTreeItem> rootNodes) { var nodes = new Stack <ICraftingTreeItem>(rootNodes); while (nodes.Any()) { ICraftingTreeItem node = nodes.Pop(); yield return(node); if (node is ICraftingTreeCompoundItem) { var compoundNode = node as ICraftingTreeCompoundItem; foreach (var n in compoundNode.Ingredients) { nodes.Push(n); } } } }