删除 MessageBox 导致 WPF 应用程序在设置内容时崩溃

问题描述

当使用以下代码双击 DataGrid 时,我正在尝试更改 ContentControl 的内容

    private void homeGrid_MouseDoubleClick(object sender,MouseButtonEventArgs e)
    {
        if (homeGrid.SelectedItem != null)
        {                
            Document selectedDoc = (Document)homeGrid.SelectedItem;
          
            // Will Crash if this Message Box Removed
                MessageBox.Show(selectedDoc.FilePath);     

            mainWindow.contentControl.Content = new DocumentView(selectedDoc);
        }           
    }

哪个工作正常并且内容已加载,但是如果我删除消息框,我会收到以下错误

WindowsBase.dll 中发生类型为“system.invalidOperationException”的未处理异常
附加信息:调度程序处理已暂停,但仍在处理消息。

如何删除此消息框并仍然正确加载内容

谢谢。

解决方法

我从双击网格中删除了事件并将其放置在一个按钮下,如下所示:

   private void Go_Click(object sender,RoutedEventArgs e)
    {
        if (homeGrid.SelectedItem != null)
        {
            Document selectedDoc = (Document)homeGrid.SelectedItem;

            // Will Crash if this Message Box Added?
            //     MessageBox.Show(selectedDoc.FilePath);                            

            mainWindow.contentControl.Content = new DocumentView(selectedDoc);
        }           
    }

这已经解决了问题,尽管现在令人困惑地将消息框重新添加会导致相同的异常。可能与这个问题有关:WPF : Dispatcher processing has been suspended,but messages are still being processed