2016-05-16 129 views
-1

我有一個帶有數據網格和圖表的窗口。數據網格有5行數據,圖表根據所選行繪製行的數據。現在它只繪製第一行,並且在我選擇不同的行時不更新圖形。此代碼是在一個類中調用ShellViewModel.cs:當按下按鈕,我得到這個指向錯誤c#error未將對象引用設置爲對象的實例

public void EditLoadForecastViewModel() 
{ 
    Shell sh; 
    Timer timer = new Timer(500); 
    timer.Elapsed += new ElapsedEventHandler((s, e) => 
    { 
     if (updateGraph) 
     { 
      sh.Dispatcher.BeginInvoke(new Action(() => UpdateLoadChart()), null); 
      updateGraph = false; 
     } 
    }); 
    timer.Start() 
} 

調用此函數在一個名爲Shell.xaml這樣

private void btnResults_Click(object sender, RoutedEventArgs e) 
{ 
    vm.ReadLoadForecastFile(false,false); 
    vm.EditLoadForecastViewModel(); 
} 

窗口行:

sh.Dispatcher.BeginInvoke(new Action(() => UpdateLoadChart()), null); 

該錯誤消息是

的NullReferenceException是未處理的用戶代碼:對象沒有設置爲一個對象

+5

'殼牌sh'從未分配 – Jonesopolis

+0

當你把一個斷點'btnResults_Click'的開始和徘徊的鼠標'vm'當調試打在運行時斷點,你看到了什麼?當你在'if(updateGraph)'之後立即放置一個斷點並且當調試器在運行時碰到斷點時把鼠標懸停在'sh'上,你看到了什麼? –

+0

你必須像'Shell sh = new Shell();實例化sh;' –

回答

0

實例化Shell對象SH的新實例的一個實例。

Shell sh = new Shell(); 
相關問題