Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
Este artigo fornece observações complementares à documentação de referência para esta API.
A ObservableCollection<T> classe representa uma coleção de dados dinâmica que fornece notificações quando itens são adicionados ou removidos, ou quando toda a lista é atualizada.
Em muitos casos, os dados com os quais você trabalha são uma coleção de objetos. Por exemplo, um cenário comum na vinculação de dados é usar um ItemsControl como um ListBox, ListView, ou TreeView para exibir uma coleção de registros.
Você pode enumerar qualquer coleção que implemente a interface IEnumerable. No entanto, para configurar associações dinâmicas para que inserções ou exclusões na coleção atualizem a interface do usuário automaticamente, a coleção deve implementar a interface INotifyCollectionChanged. Essa interface expõe o CollectionChanged evento, um evento que deve ser gerado sempre que a coleção subjacente for alterada.
A ObservableCollection<T> classe é um tipo de coleta de dados que implementa a INotifyCollectionChanged interface.
Antes de implementar sua própria coleção, considere usar ObservableCollection<T> ou uma das classes de coleção existentes, como List<T>, Collection<T>e BindingList<T>, entre muitas outras. Se você tiver um cenário avançado e quiser implementar sua própria coleção, considere usar IList, que fornece uma coleção não genérica de objetos que podem ser acessados individualmente por índice. A implementação IList fornece o melhor desempenho com o mecanismo de vinculação de dados.
Observação
Para oferecer suporte total à transferência de valores de dados de objetos de origem de vinculação para destinos de vinculação, cada objeto em sua coleção que ofereça suporte a propriedades vinculáveis deve implementar um mecanismo de notificação de alteração de propriedade apropriado, como a INotifyPropertyChanged interface.
Para obter mais informações, consulte "Vinculação a coleções" em Visão geral da vinculação de dados.
Notas sobre o uso de XAML
ObservableCollection<T> pode ser usado como um elemento de objeto XAML no Windows Presentation Foundation (WPF), nas versões 3.0 e 3.5. No entanto, o uso tem limitações substanciais.
ObservableCollection<T> deve ser o elemento raiz, porque o
x:TypeArgumentsatributo que deve ser usado para especificar o tipo restrito do genérico ObservableCollection<T> só é suportado no elemento object para o elemento raiz.Você deve declarar um
x:Classatributo (o que implica que a ação de compilação para esse arquivo XAML deve serPageou alguma outra ação de compilação que compile o XAML).ObservableCollection<T> está em namespaces e assemblies que não estão mapeados inicialmente para o namespace XML padrão. Você deve mapear um prefixo para o namespace e o assembly e, em seguida, usar esse prefixo na etiqueta do elemento de objeto para ObservableCollection<T>.
Uma maneira mais direta de usar ObservableCollection<T> recursos de XAML em um aplicativo é declarar sua própria classe de coleção personalizada não genérica que deriva de ObservableCollection<T>, e a restringe a um tipo específico. Em seguida, mapeie o assembly que contém essa classe e faça referência a ele como um elemento de objeto em seu XAML.