private void OpenInBrowser(object sender, RoutedEventArgs e)
        {
            A11yData selectedItem = (A11yData)IssueGrid.SelectedItem;

            System.Diagnostics.Process.Start(selectedItem.url);
        }
        /// <summary>
        /// Save the file.
        /// Right now called with ctr-enter on editor, or clicking the save to file button.
        /// Also reloads the HTML and scrolls to element (but element no longer has red border).
        /// </summary>
        private void SaveFile()
        {
            if (curPage == null)
            {
                return;
            }
            var newNode = HtmlNode.CreateNode(editor.Text);

            curNode.ParentNode.ReplaceChild(newNode, curNode);
            curNode = newNode;
            A11yData selectedItem = (A11yData)IssueGrid.SelectedItem;
            var      index        = data.IndexOf(selectedItem);

            data[index].Completed = !data[index].Completed;
            if (isCanvas)
            {
                string location      = curCanvasItem.Keys.ElementAt(0);
                int    pageInfoIndex = course.PageInfoList.IndexOf(curCanvasItem);
                string question_id   = selectedItem.Location.CleanSplit("?").LastOrDefault().CleanSplit("&").FirstOrDefault().CleanSplit("=").LastOrDefault();
                if (!selectedItem.Location.Contains("question_num"))
                {
                    question_id = "";
                }
                string answer_id = selectedItem.Location.CleanSplit("?").LastOrDefault().CleanSplit("&").LastOrDefault().CleanSplit("=").LastOrDefault();
                if (!selectedItem.Location.Contains("answer_num"))
                {
                    answer_id = "";
                }
                bool comment = selectedItem.Location.Contains("answer_comment");
                course.PageInfoList[pageInfoIndex][location] = curCanvasItem[location]
                                                               .SaveContent(course.CourseIdOrPath,
                                                                            curPage.Doc.DocumentNode.OuterHtml,
                                                                            question_id,
                                                                            answer_id,
                                                                            comment,
                                                                            out bool saved
                                                                            );
                if (!saved)
                {
                    System.Windows.MessageBox.Show("Failed to save item to canvas");
                }
            }
            else
            {
                curPage.Doc.Save(curPage.Location);
            }
            if (data.Count <= IssueGrid.SelectedIndex + 1)
            {
            }
            else
            {
                if (MoveGridRowTimer.ElapsedMilliseconds > 300)
                {
                    MoveGridRowTimer.Restart();
                    IssueGrid.SelectedIndex = IssueGrid.SelectedIndex + 1;
                }
            }
            ViewSource.View.Refresh();
            SetCurrentNode();
            //ViewSource.View.Refresh();
            //browser.LoadHtmlAndWait(curPage.Doc.DocumentNode.OuterHtml);
            //browser.QueueScriptCall($"var el = document.getElementById('focus_this'); el.scrollIntoView({{behavior: 'smooth' , block: 'center', inline: 'center'}});");
        }