C# Add()调用NullReferenceException

C# Add()调用NullReferenceException,c#,wpf,C#,Wpf,我有一个奇怪的两难境地,毫无意义。单击按钮后调用properties.Add时,调试器显示NullReferenceException 以下MainWindow()的构造函数中显示了该错误: 根据您发布的堆栈跟踪,NullReferenceException被抛出到MainWindow的构造函数中,确切地说,在MainWindow.xaml.cs的第36行 试着检查一下,如果你仍然被卡住了,也发布这个构造函数的代码,标记出有问题的源代码行 编辑: 尝试将以下构造函数添加到globalproper

我有一个奇怪的两难境地,毫无意义。单击按钮后调用
properties.Add
时,调试器显示
NullReferenceException

以下MainWindow()的构造函数中显示了该错误:


根据您发布的堆栈跟踪,
NullReferenceException
被抛出到
MainWindow
的构造函数中,确切地说,在
MainWindow.xaml.cs
的第36行

试着检查一下,如果你仍然被卡住了,也发布这个构造函数的代码,标记出有问题的源代码行

编辑:

尝试将以下构造函数添加到
globalproperty
,并检查这是否解决了问题:

public GlobalProperties()
{
    Properties = new ObservableCollection<Property>();
    Photos = new ObservableCollection<Photo>();
    Issues = new ObservableCollection<Problem> ();
    Tennants = new ObservableCollection<Tennant>();
}
public globalproperty()
{
属性=新的ObservableCollection();
照片=新的可观察收集();
问题=新的可观察集合();
Tennants=新的可观测集合();
}

根据您发布的堆栈跟踪,
NullReferenceException
被抛出到
MainWindow
的构造函数中,确切地说,在
MainWindow.xaml.cs
的第36行

试着检查一下,如果你仍然被卡住了,也发布这个构造函数的代码,标记出有问题的源代码行

编辑:

尝试将以下构造函数添加到
globalproperty
,并检查这是否解决了问题:

public GlobalProperties()
{
    Properties = new ObservableCollection<Property>();
    Photos = new ObservableCollection<Photo>();
    Issues = new ObservableCollection<Problem> ();
    Tennants = new ObservableCollection<Tennant>();
}
public globalproperty()
{
属性=新的ObservableCollection();
照片=新的可观察收集();
问题=新的可观察集合();
Tennants=新的可观测集合();
}
试试这个

var window = new MainWindow();
Application.Current.MainWindow = window;
window.Show();
this.Close();
试试这个

var window = new MainWindow();
Application.Current.MainWindow = window;
window.Show();
this.Close();


堆栈跟踪可能很有用。为什么要进行奇怪的堆栈检查,而不是简单地设置一个标志(例如bool字段)?另外,您在
main窗口中添加了哪些绑定,提示异常开始发生?您提供的代码示例按预期工作(由于我没有它,所以在控制器周围进行了一些小的编辑)。您的应用程序中还有其他原因导致了此问题。您提到您在主窗口上添加了一些绑定,问题开始出现,因此问题很可能出现在主窗口中。它看起来像是来自这个.Close(),因为调用onclose的地方(它会创建并显示MainWindow实例)。@EthanBrouwer我的意思是一个私有bool成员变量(调用它,例如,
wasCodeClosed
),在调用Close之前设置为true,并在关闭时签入。堆栈跟踪可能很有用。为什么会进行这种奇怪的堆栈检查,而不是简单地设置一个标志(例如bool字段)?另外,您在
main窗口中添加了哪些绑定,提示异常开始发生?您提供的代码示例工作正常(由于我没有控制器,所以在控制器周围进行了一些小的编辑)。您的应用程序中还有其他原因导致了此问题。您提到您在主窗口上添加了一些绑定,并且问题开始出现,因此此问题很可能在主窗口中出现。它看起来就像来自此。Close()因为这就是调用onclose的地方(它会创建并显示MainWindow实例)。@EthanBrouwer我的意思是一个私有bool成员变量(例如,调用它
wasCodeClosed
)在调用Close之前设置为true,并在OnClose中签入。我查看后发现,我认为这可能会引发错误,因为我试图向属性添加元素,所以我将其更改为将变量设置为该属性,然后更改该变量,然后再次将属性设置为该变量,但这不起作用。我将请稍后发布代码。@EthanBrouwer根据您发布的代码,
globalProperties.Properties
似乎未初始化。我用建议的修复程序扩展了我的答案。我在看到您的答案之前就这样做了。谢谢!我查看后发现了这一点,我认为它可能会抛出错误,因为我试图向属性,因此我将其更改为将变量设置为该属性,然后更改该变量,然后再次将属性设置为该变量,但这不起作用。我将稍后发布代码。@EthanBrouwer根据您发布的代码,
globalProperties。属性
似乎未初始化。我用建议的修复扩展了我的答案。我完成了t就在我看到你的答案之前。谢谢!这修复了这个异常。close()但是现在相同的异常出现在其他地方。我将发布确切的位置。这修复了这个异常。close()但是现在相同的异常出现在其他地方。我将发布确切的位置。