我最近为我的一个域实体添加了一个Disabled属性。我在视图模型中有这些实体的List<T>
。我只是改变了吸气剂,以基于UI设置筛选列表以选择性地显示被禁用的项目。如何添加到ObservableCollection <T>项目与LINQ Getter中的哪里()?
public ObservableCollection<CustomVariableGroup> CustomVariableGroups
{
get
{
if (this.ShowDisabled) { return this._customVariableGroups; }
return new ObservableCollection<CustomVariableGroup>(this._customVariableGroups.Where(x => x.Disabled == false));
}
}
的问题是,当我现在尝试这样做(在同一视图模型),该项目不会被添加到集合。
this.CustomVariableGroups.Add(newGroup);
而且我想我知道为什么:被添加到新ObservableCollection<T>
的新闻组,不_customVariableGroups的支持字段。
如果LINQ Where()扩展方法能够返回ObservableCollection<T>
(私有支持字段本身的类型)而不是IEnumerable,我不认为我会遇到这个问题。现在,因为Where()返回IEnumerable<T>
,我需要将其包装在新的ObservableCollection<T>
中。
我在同一个视图模型中添加新项目的权利/最佳方式是什么?我是否需要直接将其添加到私人支持字段?我不想这样做,因为我不想记住不要使用该属性本身。
这就是为什么我寻求帮助,芽。不要只是把它称为不好,你能建议如何做对吗? – 2012-07-24 13:39:22
每次你打电话给你的财产,一个**新的**可观察收藏品被创造.... – 2012-07-24 13:39:33
我意识到这一点。 – 2012-07-24 13:40:14