Cómo: Obtener la vista predeterminada de una recolección de datos

Las vistas permiten que la misma colección de datos se vea de maneras diferentes, en función de criterios de ordenación, filtrado o agrupación. Cada colección tiene una vista predeterminada compartida, que se usa como origen de enlace real cuando un enlace especifica una colección como origen. En este ejemplo se muestra cómo obtener la vista predeterminada de una colección.

Ejemplo

Para crear la vista, necesita una referencia de objeto a la colección. Este objeto de datos se puede obtener haciendo referencia a su propio objeto de código subyacente, obteniendo el contexto de datos, obteniendo una propiedad del origen de datos o obteniendo una propiedad del enlace. En este ejemplo se muestra cómo obtener el DataContext de un objeto de datos y usarlo para obtener directamente la vista de colección predeterminada de esta colección.

myCollectionView = (CollectionView)
    CollectionViewSource.GetDefaultView(rootElem.DataContext);
myCollectionView = CType(CollectionViewSource.GetDefaultView(rootElem.DataContext), CollectionView)

En este ejemplo, el elemento raíz es StackPanel. DataContext se establece en myDataSource, que hace referencia a un proveedor de datos que es un ObservableCollection<T> de objetos Order.

<StackPanel.DataContext>
  <Binding Source="{StaticResource myDataSource}"/>
</StackPanel.DataContext>

Como alternativa, puede crear instancias y enlazar a su propia vista de colección mediante la clase CollectionViewSource. Esta vista de colección solo se comparte mediante controles que se enlazan directamente a ella. Para obtener un ejemplo, vea la sección Procedimiento para crear una vista en Introducción al enlace de datos en WPF.

Para obtener ejemplos de la funcionalidad proporcionada por una vista de colección, vea Ordenar datos en una vista, Filtrar datos en una vista y Navegar por los objetos de una colección de datos mediante CollectionView.

Vea también