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যদি আমার ভাল মনে থাকে)।