うまくいく回避策を見つけましたが、私はそれが好きではありません。
私がやっていることは、Filter
プロパティを再度リセットすることです、それは仕事をします。
私はReflectorを少し歩き回って、何が欠けているのかを見つけようとしましたが、癖が何であるかを明確にすることに大きな成功はありませんでした。
private ICollectionView _Products;
public ICollectionView Products
{
get
{
if (_Products == null)
{
_Products =
CollectionViewSource.GetDefaultView(ProductsLibrary.SupportedProducts);
_Products.Filter = product => FilterProduct((Product)product);
}
return _Products;
}
}
private bool FilterProduct(Product product)
{
/**********************/
}
////////////////////
private void Search()
{
//Products.Refresh();
Products.Filter = product => FilterProduct((Product)product);
Categories.Refresh();
CategoryProducts.Refresh();
}
アップデート
私はもっと簡単な解決策を見つけました。
最初のクエリICollectionView
を単純なものに変更してIEnumerable<Product>
、Linqクエリを返しました。
更新が機能しなかった理由はわかりませんが、他のコレクションビュー(UIにバインドされている)では更新が機能するため、のlinqフィルターがIEnumerable<Product>
機能します。