所以在我的应用程序中,我使用了ICollectionView of Products,它与DataBinding绑定到DataGrid。产品来自MS-SQL表,这个表很安静(约30.000个条目)。在某些时候,我需要重新加载表,因为它的内容可能已经改变。
每当我调用ReloadProducts()~30,000时,都会创建新对象。以前的对象不会被释放并保留在内存中以用于整个应用程序的实时。
知道如何强制处理旧物品吗?
视图模型:
private ICollectionView _productCollectionView;
public ICollectionView ProductCollectionView
{
set { _productCollectionView = value; }
get
{
if (_productCollectionView == null)
{
ReloadProducts();
}
return _productCollectionView ;
}
}
public void ReloadProducts()
{
List<Products> productList = Entities.Products.ToList();
ProductCollectionView = CollectionViewSource.GetDefaultView(productList);
NotifyPropertyChanged("ProductCollectionView");
}
查看:
<DataGrid ItemsSource="{Binding ProductCollectionView}" AutoGenerateColumns="False"/>
答案 0 :(得分:1)
尝试使用集合既不是它的视图。绑定将连接到集合的视图。
只需使用以下内容:
core.autocrlf