private void TextBox_LostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
        {
            TextBox headerEdit = sender as TextBox;

            if (headerEdit != null)
            {
                AbstractSolutionItem solutionItem = headerEdit.DataContext as AbstractSolutionItem;
                if (solutionItem != null && solutionItem.HeaderBeingEdited)
                {
                    solutionItem.HeaderEditAccept();
                }
            }
        }
        private void TextBox_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
        {
            TextBox headerEdit = sender as TextBox;

            if (headerEdit != null)
            {
                AbstractSolutionItem solutionItem = headerEdit.DataContext as AbstractSolutionItem;
                if (solutionItem != null)
                {
                    if (e.Key == System.Windows.Input.Key.Enter)
                    {
                        solutionItem.HeaderEditAccept();
                    }
                    else if (e.Key == System.Windows.Input.Key.Escape)
                    {
                        solutionItem.HeaderEditCancel();
                    }
                }
            }
        }