// Delete Object (Memo or Arrow) void DeleteObject(object sender, EventArgs args) { switch (StatusLabel.Text) { case "Memo Tapped": Memo TappedMemo = (Memo)WhichObject(TappedObject); foreach (Arrow arrow in TappedMemo.Arrows) { // Remove all arrows from Memo and MemoBoard if (arrow.From == TappedMemo) { arrow.To.Arrows.Remove(arrow); } if (arrow.To == TappedMemo) { arrow.From.Arrows.Remove(arrow); } MemoBoard.Children.Remove(arrow.Body); } Memos.Remove(TappedMemo); StatusLabel.Text = "Memo Deleted"; break; case "Arrow Tapped": case "Linking Memo": Arrow TappedArrow = (Arrow)WhichObject(TappedObject); Memo from = TappedArrow.From; from.Arrows.Remove(TappedArrow); Memo to = TappedArrow.To; to.Arrows.Remove(TappedArrow); LinkMemoButton.Text = "->"; // change the button label StatusLabel.Text = "Arrow Deleted"; break; } MemoBoard.Children.Remove(TappedObject); DeleteObjectButton.IsEnabled = false; }