How to Add to an ObservableCollection<T> Item with LINQ Where() in Getter?
===

I recently added a Disabled property to one of my domain entities. I have a `List<T>` of those entities in a view model. I just changed the getter to filter the list based on a UI setting to selectively show items that are disabled.

    public ObservableCollection<CustomVariableGroup> CustomVariableGroups
    {
        get
        {
            if (this.ShowDisabled) { return this._customVariableGroups; }

            return new ObservableCollection<CustomVariableGroup>(this._customVariableGroups.Where(x => x.Disabled == false));
        }
    }

The problem is that when I now try to do this (in the same view model), the item doesn't get added to the collection.

    this.CustomVariableGroups.Add(newGroup);

And I think I know why: The newGroup is being added to the new `ObservableCollection<T>`, not the backing field of _customVariableGroups.

If the LINQ Where() extension method was able to return `ObservableCollection<T>` (the type of the private backing field itself) instead of IEnumerable, I don't think I'd have this issue. As it stands now, since Where() returns `IEnumerable<T>`, I need to wrap that inside a new `ObservableCollection<T>`.

What is the right/best way for me to add a new item within the same view model? Do I need to add it directly to the private backing field? I don't want to do that because I don't want to have to remember not to use the property itself.