我正在尝试将 a 绑定GridView
到集合,并且我想GridView
在集合设置后进行更新。
我不使用的原因ObservableCollection
是,如果集合很大(超过 1000 个项目,并且我想在添加所有项目后显示所有项目),它将阻止 UI。在 Metro 风格的应用程序中,没有 C# 使用的 BindingList 类,所以我需要实现自己的集合类吗?我试图实现一个继承的类IList
和INotifyPropertyChanged
.
我做了这样的事情:
<GridView x:Name="ItemsGridView" ItemsSource="{Binding viewCollection}"/>
class MyBindingList<T> : IList<T>, INotifyPropertyChanged
{
private List<Item> _viewCollection = new List<Item>();
public List<Item> viewCollection
{ get { return _viewCollection; } set { _viewCollection = value; } }
public virtual event PropertyChangedEventHandler PropertyChanged;
public void RaiseChanged()
{
this.PropertyChanged(this, new PropertyChangedEventArgs("viewCollection"));
}
}
MyBindingList<Item> list = new MyBindingList<Item>();
ItemsGridView.DataContext = list;
有人可以给我一个建议吗?谢谢!