从ObservableCollection中删除项目会导致崩溃,为什么?

时间:2019-09-22 00:53:57

标签: c# wpf

我声明了ObservableCollection<T>中的string,如下所示:

private ObservableCollection<string> riStrips = new ObservableCollection<string>();

public ObservableCollection<string> RiStrips
{
    get
    {
        return riStrips;
    }
    set
    {
        riStrips = value;
        OnPropertyChanged("RiStrips");
    }
}

我有一个添加到集合中的函数,通过单击按钮将字符串传递给它来调用:

public void AddRiStrip(string riStrip)
{
    if (riStrips.Contains(riStrip))
    {
        MessageBox.Show("Duplicate strip already in list.");
        return; //no dupes
    }
    riStrips.Add(riStrip);
    OnPropertyChanged("RiStrips");
}

,并且有效。我有一个函数可以删除通过单击按钮并传递字符串的项目,该项目也可以通过单击按钮来调用:

public void RemoveStrip(string riStrip)
{
    if (riStrips.Contains(riStrip)) riStrips.Remove(riStrip);//crashes on this line
    OnPropertyChanged("RiStrips");
}

并导致程序因以下异常而崩溃:

    System.NullReferenceException
    HResult=0x80004003
    Message=Object reference not set to an instance of an object.
    Source=Message Template

此功能在辅助窗口中。我在主窗口中有一个相同的函数(变量名除外),它可以正常工作。我错过了什么?

0 个答案:

没有答案