wpf窗口在尝试显示时抛出异常
本文关键字:显示 抛出异常 窗口 wpf | 更新日期: 2023-09-27 18:29:17
我创建了一个WPF应用程序,它在几台计算机上完美运行。有一台计算机不断抛出"对象引用未设置为对象实例"异常。我无法在那台计算机上安装Visual Studio,但我找到了导致问题的行:
var m_GCSWindow = new GCSWindow();
m_GCSWindow.Show();
直到CCD_ 1。
我想不出这个,因为:
- 它适用于所有其他计算机
- 它是MVVM,没有代码隐藏
可能是什么问题?
编辑:
我终于能够在有问题的计算机上安装visualstudio,并发现如果我从XAML中删除一行,一切都可以加载
<Image Source="{Binding MapView.MapImage,Converter={StaticResource ImageConverter}}"
Stretch="None" MouseLeftButtonDown="Image_MouseLeftButtonDown"
ContextMenu="{StaticResource MapRightClick}" />
所以我认为问题可能出在转换器上,并在其中设置了一个断点,但之前发生过异常。
编辑2:
经过进一步的调查,我发现MouseLeftButtonDown="Image_MouseLeftButtonDown"
是造成这个问题的原因。当我去掉那条线时,一切都正常。
private void Image_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if (ImageClickCommand != null) ImageClickCommand.Execute(e.GetPosition(sender as IInputElement));
}
这就是代码,我在其中加入了一个断点,但我仍然无法到达那里
我甚至尝试将事件转移到另一个控件,但我仍然有同样的问题。
我以前遇到过这个问题。该错误可能在转换器中找到
尝试调试转换器
确保它被调用确保它获得您希望它转换的值确保转换时不会崩溃确保你得到你想要的值
Etc等
还有-你能发布ImageConverter的代码吗?
也许m_GCSWindow为null,也许您可以进行null检查。
GCSWindow是否驻留在DLL中?也许DLL不见了?也许它的一个depdencies不见了。
您也可以在调用