wpf窗口在尝试显示时抛出异常

时间:2014-11-05 13:00:10

标签: c# wpf mvvm

我创建了一个WPF应用程序,它在几台计算机上运行完美。 有一台计算机不断将一个" Object引用设置为一个对象的实例。"例外。 我无法在该计算机上安装Visual Studio,但我找到了导致问题的行:

var m_GCSWindow = new GCSWindow();
m_GCSWindow.Show();

一切都运行良好,直到Show()

我无法理解这一点,因为:

  1. 适用于所有其他计算机。
  2. 它的MVVM,没有代码。
  3. 可能是什么问题?

    修改
    我终于能够在有问题的计算机上安装visual studio,并发现如果我从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));
    }
    

    这是代码,我在其中设置了一个断点,但我仍然没有到达那里 我甚至尝试将事件移动到另一个控件,但我仍然有同样的问题。

2 个答案:

答案 0 :(得分:0)

也许m_GCSWindow为null,也许你可以进行空检查。

GCSWindow是否驻留在DLL中?也许DLL丢失了?也许其中一个缺点就是缺失。

你也可以尝试一下这个电话

答案 1 :(得分:0)

我以前遇到过这个问题。该错误可能在转换器中找到

尝试调试转换器

确保它被调用 确保它获得您希望它转换的值 转换时确保它不会崩溃 确保获得所需的价值

Etc等等

另外 - 你可以发布ImageConverter的代码吗?