ObservableCollection
কোনও সংগ্রহের মতো ইউআই থেকে একটি আপডেট করা যেতে পারে। সত্য পার্থক্য বরং সোজা:
ObservableCollection<T>
কার্যকরী INotifyCollectionChanged
যখন সংগ্রহে পরিবর্তিত হয় যা প্রজ্ঞাপন প্রদান করে (আপনি অনুমিত ^^) যখন বাঁধাই ইঞ্জিন UI 'তে আপডেট করতে পারবেন ObservableCollection
আপডেট করা হয়।
তবে, BindingList<T>
প্রয়োগ IBindingList
।
IBindingList
সংগ্রহের পরিবর্তনের বিষয়ে বিজ্ঞপ্তি সরবরাহ করে তবে এটিই নয়। এটি সম্পূর্ণ কার্যকারিতা সরবরাহ করে যা কেবলমাত্র ইউআই আপডেটের চেয়ে আরও অনেক কিছু সরবরাহ করতে ইউআই ব্যবহার করতে পারে যেমন:
- শ্রেণীবিভাজন
- অনুসন্ধানের
- কারখানার মাধ্যমে যুক্ত করুন (অ্যাডনিউ সদস্য ফাংশন)।
- পঠনযোগ্য তালিকা (সম্পত্তি সম্পাদনা)
এই সমস্ত কার্যকারিতা পাওয়া যায় না ObservableCollection<T>
আর একটি পার্থক্য হ'ল BindingList
রিলে আইটেমগুলি পরিবর্তন করে যখন আইটেমগুলি প্রয়োগ করে INotifyPropertyChanged
। যদি কোনও আইটেম কোনও PropertyChanged
ইভেন্ট উত্থাপন করে , তবে এটি BindingList
তার ListChangedEvent
সাথে একটি উত্থাপন করবে ListChangedType.ItemChanged
এবং OldIndex=NewIndex
(যদি কোনও আইটেম প্রতিস্থাপন করা হয়েছে OldIndex=-1
)। ObservableCollection
আইটেম বিজ্ঞপ্তি রিলে না।
দ্রষ্টব্য যে সিলভারলাইটে, BindingList
বিকল্প হিসাবে উপলভ্য নয়: আপনি তবে ObservableCollection
এস ব্যবহার করতে পারেন এবং ICollectionView
(এবং IPagedCollectionView
যদি আমার ভাল মনে থাকে)।