2014-11-05 90 views
2

我創建了一個WPF應用程序,它可以在多臺計算機上完美運行。 有一臺計算機不斷拋出「未設置對象實例的對象引用」。例外。 我不能在該計算機上安裝Visual Studio,但我發現,導致問題的行:wpf窗口在嘗試顯示時拋出異常

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

一切都完美地運行,直到Show()

我想不通這一個,因爲:

  1. 它適用於所有其他計算機。
  2. 它是MVVM,沒有代碼。

可能是什麼問題?

編輯:
我終於可以有問題的計算機上安裝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)); 
} 

這就是代碼,我在其中放了一個斷點,但我仍然沒有到達那裏。
我甚至嘗試將事件轉移到另一個控件,但我仍然有同樣的問題。

+0

看看GCSWindow的構造函數,我覺得問題在於它 – Narek 2014-11-05 14:58:26

+0

也許.NET框架版本在引起問題的PC上是不同的,但這只不過是一種猜謎遊戲。HTH – XAMlMAX 2014-11-05 16:34:38

+0

@Narek構造函數是空的,正如我所說的 - 沒有代碼隱藏。 – Nataly87 2014-11-06 06:39:57

回答

0

也許m_GCSWindow爲空,也許你可以把一個空檢查。

GCSWindow駐留在DLL中嗎?也許DLL丟失?也許它的一個缺點是缺失。

您也可以嘗試在該呼叫周圍撥打

0

我以前有過這個問題。這個錯誤或許可以在轉換器中找到

嘗試調試器

確保它被稱爲 確保它得到你想要轉換 確保值轉換 時,它不會崩潰確保你的價值,你想

等等等等

而且 - 你能張貼ImageConverter的代碼?

+0

原來它不是轉換器。如果你仍然想在這裏的代碼是:[pastebin.com/7jG8JBD0](http://pastebin.com/7jG8JBD0) – Nataly87 2014-11-06 08:47:58