首页 > 解决方案 > 删除 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”类型的未处理异常
附加信息:调度程序处理已暂停,但仍在处理消息。

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

谢谢你。

标签: c#wpfmessagebox

解决方案


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

   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:调度程序处理已暂停,但消息仍在处理中


推荐阅读