をコレクションにバインドしようとしていますが、コレクションが設定された後GridView
に更新したいと思いGridView
ます。
私が使用しない理由ObservableCollection
は、コレクションが大きい場合(1000アイテムを超える場合、すべてのアイテムが追加された後にすべてのアイテムを表示したい)、UIをブロックするためです。メトロスタイルアプリには、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;
誰かが私に提案を与えることができますか?ありがとう!