Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#错误对象引用未设置为对象的实例_C#_.net_Wpf_Xaml_Datagrid - Fatal编程技术网

c#错误对象引用未设置为对象的实例

c#错误对象引用未设置为对象的实例,c#,.net,wpf,xaml,datagrid,C#,.net,Wpf,Xaml,Datagrid,我有一个带有数据网格和图表的窗口。数据网格有5行数据,图表根据所选行绘制该行的数据。现在,它只绘制第一行的图形,当我选择其他行时,它不会更新图形。此代码位于名为ShellViewModel.cs的类中: public void EditLoadForecastViewModel() { Shell sh; Timer timer = new Timer(500); timer.Elapsed += new ElapsedEventHandler((s, e) =>

我有一个带有数据网格和图表的窗口。数据网格有5行数据,图表根据所选行绘制该行的数据。现在,它只绘制第一行的图形,当我选择其他行时,它不会更新图形。此代码位于名为ShellViewModel.cs的类中:

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未由用户代码处理:对象引用未设置为对象的实例


实例化Shell对象sh的新实例

Shell sh = new Shell();

当您在
btnResults\u的开始处放置断点并将鼠标悬停在
vm
上时,当调试器在运行时命中断点时,您看到了什么?当调试器在运行时命中断点时,在
if(updateGraph)
之后立即放置断点,并将鼠标悬停在
sh
上,您看到了什么?您必须像
Shell sh=new Shell()那样实例化sh