为了过滤对象列表,我定义了这个属性:
private ICollectionView _view;
public ICollectionView View
{
get
{
return _view;
}
set
{
_view = value;
OnPropertyChanged("View");
}
}
然后是我的过滤器:
item.View = CollectionViewSource.GetDefaultView(item.myList);
item.View.Filter = delegate(object o)
{
if (myCondition)
{
return true;
}
}
过滤器工作正常,但由于 ICollectionView 是一个界面,我无法使用我的项目:如果我这样称呼它们:
element1 = item.View[0].SomeProperty;
我收到
Cannot apply indexing with [] to an expression of type 'System.ComponentModel.ICollectionView'
我试图在开始时View
不设置为界面,但后来我无法使过滤器工作。这样做并尝试投射:
item.View = (ICollectionView)CollectionViewSource.GetDefaultView(item.myList);
也没有给我带来好的结果。
为了过滤(在我的情况下,我在 ComboBox 中显示项目)而且还与它们一起工作,我该怎么做......我的目标是能够为 ComboBox 中剩余的所有元素创建一个 foreach 循环。这可能吗?