c# - 删除 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:调度程序处理已暂停,但消息仍在处理中
推荐阅读
- jdbc - 在 JBoss / Wildfly 上为部署的应用程序允许不同的 jdbc 驱动程序的正确方法是什么?
- mysql - 两个日期之间有可用的支票槽位
- python - 大型数组的 MPI.Gather 调用挂起
- python - 具有正弦功能的神经网络:误差不会减少
- c# - 为什么使用 PCap.NET 发送的数据包没有填写 TCP 选项?
- docker - Caching gradle output in dockerfile
- reactjs - React 获取数据空指针异常
- django - 在模板中,当 model.value == "str" 时如何创建 if 语句
- functional-programming - 为什么 Phoenix 中的控制器动作作为原子而不是函数传递?
- javascript - 动态更改指南的 value 和 toValue (AMCharts)