CollectionView-Klasse
Aktualisiert: Juli 2008
Stellt eine Ansicht zum Gruppieren, Sortieren, Filtern und Navigieren in einer Datenauflistung dar.
Assembly: PresentationFramework (in PresentationFramework.dll)
XMLNS für XAML: http://schemas.microsoft.com/winfx/xaml/presentation
public class CollectionView : DispatcherObject, ICollectionView, IEnumerable, INotifyCollectionChanged, INotifyPropertyChanged
public class CollectionView extends DispatcherObject implements ICollectionView, IEnumerable, INotifyCollectionChanged, INotifyPropertyChanged
public class CollectionView extends DispatcherObject implements ICollectionView, IEnumerable, INotifyCollectionChanged, INotifyPropertyChanged
Legen Sie eine Ansicht in XAML mit der CollectionViewSource-Klasse fest. CollectionViewSource ist die XAML-Darstellung der CollectionView-Klasse, und es werden die am häufigsten verwendeten Member der CollectionView-Klasse offengelegt.
Sie sollten keine Objekte dieser Klasse im Code erstellen. Zum Erstellen einer Auflistungsansicht für eine Auflistung, die nur IEnumerable implementiert, erstellen Sie ein CollectionViewSource-Objekt, fügen Sie die Auflistung der Source-Eigenschaft hinzu, und rufen Sie die Auflistungsansicht von der View-Eigenschaft ab.
Eine Auflistungsansicht fungiert als Ebene über einer Bindungsquellen-Auflistung, in der Sie mit Sortier-, Filter- und Gruppierungsabfragen navigieren und die jeweilige Auflistung anzeigen können, ohne die zugrunde liegende Quellauflistung selbst ändern zu müssen. Wenn die Quellauflistung die INotifyCollectionChanged-Schnittstelle implementiert, werden die vom CollectionChanged-Ereignis ausgelösten Änderungen an die Ansichten weitergegeben.
Da in einer Ansicht die zugrunde liegende Quellauflistung nicht geändert wird, können einer Quellauflistung mehrere Ansichten zugeordnet sein. Mit Ansichten können Sie die gleichen Daten auf verschiedene Weise anzeigen. Beispielsweise können Sie in zwei Ansichten einer Auflistung von Task-Objekten Aufgaben in einem Teil der Seite nach Priorität sortiert und in einem anderen Teil der Seite nach Bereich gruppiert anzeigen.
In WPF-Anwendungen ist allen Auflistungen eine Standardauflistungsansicht zugeordnet. Im Bindungsmodul erfolgt der Zugriff auf die Auflistung nicht direkt, sondern stets über die zugeordnete Ansicht. Verwenden Sie zum Aufrufen der Standardansicht die CollectionViewSource.GetDefaultView-Methode. Für Auflistungen, die nur IEnumerable implementieren, ist eine interne, auf CollectionView basierende Klasse die Standardansicht. ListCollectionView ist die Standardansicht für Auflistungen, die IList implementieren. BindingListCollectionView ist die Standardansicht für Auflistungen, die IBindingListView oder IBindingList implementieren.
Alternativ dazu können Sie eine Ansicht einer Auflistung in Extensible Application Markup Language (XAML) mit der CollectionViewSource-Klasse erstellen und dann das Steuerelement an diese Ansicht binden. Die CollectionViewSource-Klasse ist die XAML-Darstellung der CollectionView-Klasse. Ein Beispiel finden Sie unter Gewusst wie: Sortieren und Gruppieren von Daten mit einer Ansicht in XAML.
Weitere Informationen finden Sie in Übersicht über Datenbindung unter Binden an Auflistungen
Mit Ansichten kann eine Datenerfassung abhängig von Sortierungs-, Filterungs- oder Gruppierungskriterien auf verschiedene Weise angezeigt werden. Jede Auflistung verfügt über eine gemeinsame Standardansicht, die als tatsächliche Bindungsquelle verwendet wird, wenn eine Auflistung als Bindungsquelle angegeben wird. Dieses Beispiel zeigt, wie die Standardansicht einer Auflistung abgerufen wird.
Zum Erstellen der Ansicht benötigen Sie einen Objektverweis auf die Auflistung. Dieses Objekt kann abgerufen werden, indem Sie auf ein eigenes Code-Behind-Objekt verweisen oder den Datenkontext, eine Eigenschaft der Datenquelle oder eine Eigenschaft der Bindung abrufen. Dieses Beispiel zeigt, wie der DataContext eines Datenobjekts abgerufen und direkt zum Abrufen der Standardansicht der Auflistung verwendet wird.
myCollectionView = (CollectionView)
CollectionViewSource.GetDefaultView(rootElem.DataContext);
In diesem Beispiel ist das Stammelement ein StackPanel. DataContext wird auf myDataSource festgelegt und verweist auf einen Datenanbieter, der eine ObservableCollection<T> von Order-Objekten ist.
<StackPanel.DataContext>
<Binding Source="{StaticResource myDataSource}"/>
</StackPanel.DataContext>
Alternativ können Sie eine Instanziierung ausführen und mit der CollectionViewSource-Klasse eine Bindung an Ihre eigene Auflistungsansicht herstellen. Diese Auflistungsansicht ist nur für Steuerelemente freigegeben, die direkt daran gebunden sind. Ein Beispiel finden Sie im Abschnitt "So erstellen Sie eine Ansicht" unter Übersicht über Datenbindung.
Beispiele für die Funktionalität, die von einer Auflistungsansicht bereitgestellt wird, finden Sie unter Gewusst wie: Sortieren von Daten in einer Ansicht, Gewusst wie: Filtern von Daten in einer Ansicht und Gewusst wie: Navigieren durch die Objekte in einer Datenauflistungsansicht.
Weiterer Code
| Gewusst wie: Navigieren durch die Objekte in einer Datenauflistungsansicht | Mit Ansichten kann eine Datenerfassung abhängig von Sortierung, Filterung oder Gruppierung auf verschiedene Weise angezeigt werden. Ansichten stellen auch einen Zeiger auf den aktuellen Datensatz bereit und ermöglichen das Verschieben des Zeigers. In diesem Beispiel wird gezeigt, wie das aktuelle Objekt abgerufen wird und wie Sie mithilfe der von der CollectionView-Klasse bereitgestellten Funktionalität durch die Objekte in einer Datenerfassung navigieren. |
| Gewusst wie: Filtern von Daten in einer Ansicht | Dieses Beispiel zeigt, wie Daten in einer Ansicht gefiltert werden. |
| Gewusst wie: Sortieren von Daten in einer Ansicht | In diesem Beispiel wird beschrieben, wie Daten in einer Ansicht sortiert werden. |
| Gewusst wie: Sortieren und Gruppieren von Daten mit einer Ansicht in XAML | In diesem Beispiel wird gezeigt, wie eine Ansicht einer Datenauflistung in Extensible Application Markup Language (XAML) erstellt wird. Ansichten unterstützen das Gruppieren, Sortieren, Filtern und das Konzept eines aktuellen Elements. |
Windows Vista
.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Datum | Versionsgeschichte | Grund |
|---|---|---|
Juli 2008 | Neue Member hinzugefügt: NewItemPlaceholder-Eigenschaft, SetCurrent-Methode. |
SP1-Featureänderung. |