12

这些似乎都不起作用:

var source = myViewModel.MyListCollectionView.Select(x => x as MyType);
var source = myViewModel.MyListCollectionView.Select<object, MyType>(x => x as MyType);
var source = myViewModel.MyListCollectionView.SourceCollection.Select<object, MyType>(x => x as MyType);
4

4 回答 4

26

ListCollectionView只实现非泛型IEnumerable接口。我怀疑你想要:

var source = myViewModel.MyListCollectionView.Cast<MyType>();

或(如果某些值不是MyType,那没关系):

var source = myViewModel.MyListCollectionView.OfType<MyType>();
于 2011-05-26T17:30:09.250 回答
7
var source = myViewModel.MyListCollectionView.OfType<MyType>();
于 2011-05-26T17:30:19.087 回答
2

InternalList属性是类型IList,因此您可以linq针对该属性编写查询。

于 2011-05-26T17:30:46.567 回答
2

啊啊啊找到了 你必须先使用 Cast<> !

var source = myViewModel.MyListCollectionView.Cast<MyType>().Select(p=>p.MyProperty);
于 2011-05-26T17:31:43.247 回答