private ListBoxItem createListItem(MillingWorkspaceItem workItem) { var item = new ListBoxItem(); item.Content = workItem.Name; item.Tag = workItem; var shapeItem = workItem as MillingShapeItem2D; if (shapeItem != null) { var menu = new ContextMenu(); var copyItem = new MenuItem(); copyItem.Header = "Copy"; copyItem.Click += (e, s) => { Workspace.Children.Add(shapeItem.Clone(Workspace.UnusedVersion(shapeItem.Name))); }; menu.Items.Add(copyItem); var deleteItem = new MenuItem(); deleteItem.Header = "Delete"; deleteItem.Click += (e, s) => { Workspace.Children.Remove(shapeItem); }; menu.Items.Add(deleteItem); item.ContextMenu = menu; } return(item); }
private void onItemClicked(MillingWorkspaceItem item) { if (!_addJoinsEnabled || !(item is MillingItem)) { //nothing to do return; } if (_joinItemCandidate != null) { _joinItemCandidate.IsHighlighted = false; } if (item == _joinItemCandidate) { //selection was discarded _joinItemCandidate = null; return; } var pointProvider = item as MillingItem; pointProvider.IsHighlighted = true; if (_joinItemCandidate == null || pointProvider is EntryPoint) { //first item is set (entry point has to be first) _joinItemCandidate = pointProvider; return; } Workspace.SetJoin(_joinItemCandidate, pointProvider); _joinItemCandidate = pointProvider; }