オブジェクトのリストをフィルタリングするために、次のプロパティを定義しました。
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ループを作成できるようにすることです。これは可能ですか?