Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.
Třída ObservableCollection<T> představuje dynamickou kolekci dat, která poskytuje oznámení při přidání nebo odebrání položek nebo při aktualizaci celého seznamu.
V mnoha případech jsou data, se kterými pracujete, kolekcí objektů. Například běžným scénářem v datové vazbě je použití ItemsControl, jako je ListBox, ListView nebo TreeView, pro zobrazení kolekce záznamů.
Můžete vytvořit výčet nad libovolnou kolekcí, která implementuje rozhraní IEnumerable. Pokud ale chcete nastavit dynamické vazby tak, aby vložení nebo odstranění v kolekci automaticky aktualizovalo uživatelské rozhraní, musí kolekce implementovat rozhraní INotifyCollectionChanged. Toto rozhraní zveřejňuje CollectionChanged událost, což je událost, která by měla být vyvolána při každé změně podkladové kolekce.
Třída ObservableCollection<T> je typ shromažďování dat, který implementuje INotifyCollectionChanged rozhraní.
Před implementací vlastní kolekce zvažte použití ObservableCollection<T> nebo jedné z existujících tříd kolekce, jako jsou List<T>, Collection<T>a BindingList<T>, mimo jiné. Pokud máte pokročilý scénář a chcete implementovat vlastní kolekci, zvažte použití IList, která poskytuje ne generickou kolekci objektů, ke kterým lze individuálně přistupovat pomocí indexu. Implementace IList poskytuje nejlepší výkon s modulem datových vazeb.
Poznámka:
Aby byl plně podporován přenos datových hodnot ze zdrojových objektů vazby na cílové objekty vazby, musí každý objekt v kolekci, který podporuje vlastnosti pro vazbu, implementovat vhodný mechanismus oznámení o změně vlastnosti, jako je rozhraní INotifyPropertyChanged.
Další informace naleznete v tématu Vazby k kolekcím v přehledu datových vazeb.
Poznámky k použití XAML
ObservableCollection<T> lze použít jako element objektu XAML ve Windows Presentation Foundation (WPF) ve verzích 3.0 a 3.5. Využití má ale podstatná omezení.
ObservableCollection<T> musí být kořenový prvek, protože
x:TypeArgumentsatribut, který se musí použít k určení omezeného typu obecného ObservableCollection<T> , je podporován pouze u elementu object pro kořenový prvek.Musíte deklarovat
x:Classatribut (což znamená, že akce sestavení pro tento soubor XAML musí býtPagenebo jiná akce sestavení, která kompiluje XAML).Namespace a sestavení ObservableCollection<T> nejsou zpočátku přiřazeny k výchozímu oboru názvů XML. Musíte namapovat předponu pro obor názvů a sestavení a poté tuto předponu použít na značku objektového elementu pro ObservableCollection<T>.
Jednodušší způsob použití ObservableCollection<T> schopností z XAML v aplikaci je deklarovat vlastní ne generickou třídu kolekce, která je odvozena od ObservableCollection<T>a omezuje ji na určitý typ. Pak namapujte sestavení, které obsahuje tuto třídu, a odkazujte na něj jako objektový prvek v XAML.