SORU
26 Kasım 2010, Cuma


ObservableCollection ve BindingList arasındaki fark

Bilmek istiyorum arasındaki fark ObservableCollection BindingList çünkü ben de kullandım hem de bilgilendirmek için herhangi bir Ekle/sil değiştir Kaynağı, ama ben gerçekten bilmiyorum ne zaman tercih bir yere.

Neden diğer aşağıdakilerden birini seçtim?

ObservableCollection<Employee> lstEmp = new ObservableCollection<Employee>();

ya

BindingList<Employee> lstEmp = new BindingList<Employee>();

CEVAP
26 Kasım 2010, Cuma


ObservableCollection tam olarak herhangi bir koleksiyon gibi UI üzerinden güncellenebilir. Gerçek fark oldukça basittir:

ObservableCollection<T> toplama değiştirildiğinde bildirim sağlar INotifyCollectionChanged (^^tahmin)uygular Bağlama motor ObservableCollection güncellenir UI güncellemek için izin verir.

Ancak, BindingList<T> IBindingList uygular.

IBindingList toplama değişiklik bildirimi, ama sadece o değil sağlar. Değişikliklere göre sadece güncellemeleri UI çok daha fazla şeyler sağlamak için UI gibi kullanılabilecek işlevsellik bir sürü sunuyor:

  • Sıralama
  • Arama
  • Fabrika (AddNew üye işlev ekleyin.
  • Salt okunur listesi (CanEdit özelliği)

Tüm bu fonksiyonlar ObservableCollection<T> kullanılamaz

Başka bir fark BindingList öğeleri INotifyPropertyChanged uygulamak madde değişikliği bildirimleri aktaran. Eğer bir öğe yükseltir PropertyChanged olay, BindingList ecek almak bir yükseltir ListChangedEvent ListChangedType.ItemChanged OldIndex=NewIndex (eğer bir şey yerine, OldIndex=-1). ObservableCollection madde bildirimleri geçiş yok.

Silverlight, BindingList bir seçenek olarak kullanılabilir not: ancak ObservableCollections ICollectionView (ve eğer yanlış hatırlamıyorsam IPagedCollectionView) kullanabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DetroitBORG

    DetroitBORG

    29 Temmuz 2008
  • ghosti66

    ghosti66

    27 AĞUSTOS 2006
  • Jorrit Jongma

    Jorrit Jongm

    17 Ocak 2008