CollectionViewSource Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt eine Datenquelle bereit, die Sammlungsklassen Gruppierung und Unterstützung für aktuelle Elemente hinzufügt.
public ref class CollectionViewSource sealed : DependencyObject
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class CollectionViewSource final : DependencyObject
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class CollectionViewSource final : DependencyObject
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class CollectionViewSource : DependencyObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class CollectionViewSource : DependencyObject
Public NotInheritable Class CollectionViewSource
Inherits DependencyObject
<CollectionViewSource .../>
- Vererbung
- Attribute
Windows-Anforderungen
Gerätefamilie |
Windows 10 (eingeführt in 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)
|
Beispiele
Tipp
Weitere Informationen, Entwurfsanleitungen und Codebeispiele finden Sie unter Datenbindung.
Wenn Sie die WinUI 2-Katalog-App installiert haben, klicken Sie hier, um die App zu öffnen und ein Beispiel für die Gruppierung mit SemanticZoom in Aktion anzuzeigen.
Im folgenden Codebeispiel wird veranschaulicht, wie ein ListBox-Steuerelement an die Ergebnisse einer gruppierenden LINQ-Abfrage gebunden wird (eine Sammlung von Teams wird nach Ort gruppiert und mit dem Stadtnamen als Gruppenheader angezeigt). Die vollständige Codeauflistung finden Sie im XAML-Datenbindungsbeispiel.
<Grid>
<Grid.Resources>
<CollectionViewSource x:Name="groupInfoCVS" IsSourceGrouped="true"/>
</Grid.Resources>
<ListBox x:Name="lbGroupInfoCVS"
ItemsSource="{Binding Source={StaticResource groupInfoCVS}}">
<ListBox.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Key}"/>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ListBox.GroupStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Border Background="{Binding Color}"
Width="200" CornerRadius="10" HorizontalAlignment="Left">
<TextBlock Text="{Binding Name}"
Style="{StaticResource DescriptionTextStyle}"
HorizontalAlignment="Center" FontWeight="Bold"/>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
Teams teams = new Teams();
var result =
from t in teams
group t by t.City into g
orderby g.Key
select g;
groupInfoCVS.Source = result;
Ein ausführlicheres Beispiel finden Sie im Beispiel für die XAML-Datenbindung.
Hinweise
Verwenden Sie CollectionViewSource, wenn Sie Listensteuerelemente an Sammlungen binden möchten, aber diese Sammlungen in Gruppen anzeigen und ein aktuelles Element unabhängig vom Listensteuerelement verwalten möchten. Dies ist besonders nützlich, wenn Sie mehrere Steuerelemente an dieselbe Auflistung binden möchten und das aktuelle Element in einem Steuerelement das aktuelle Element in den anderen gebundenen Steuerelementen ändern soll. Sie definieren eine CollectionViewSource in der Regel als XAML-Ressource und binden sie mithilfe der {StaticResource}-Markuperweiterung an sie. Anschließend können Sie die Source-Eigenschaft im CodeBehind auf einen unterstützten Sammlungstyp festlegen.
Alle Steuerelemente, die Sie an dieselbe CollectionViewSource binden, verfügen immer über dasselbe aktuelle Element. Sie können programmgesteuert über die ICollectionView.CurrentItem-Eigenschaft des CollectionViewSource.View-Eigenschaftswerts auf das aktuelle Element zugreifen.
Wenn die Elemente in der Auflistung selbst Sammlungen sind oder Objekte sind, die Sammlungen enthalten, können Sie die Auflistungen als Gruppen innerhalb der größeren Auflistung anzeigen. Legen Sie hierzu die IsSourceGrouped-Eigenschaft auf true fest. Wenn die Elemente Sammlungen enthalten, aber keine Sammlungen sind, müssen Sie auch die ItemsPath-Eigenschaft auf den Namen der Auflistungseigenschaft festlegen.
Hinweis
Das Festlegen der Source-Eigenschaft auf eine andere CollectionViewSource-instance wird nicht unterstützt.
Konstruktoren
CollectionViewSource() |
Initialisiert eine neue instance der CollectionViewSource-Klasse. |
Eigenschaften
Dispatcher |
Ruft den CoreDispatcher ab, dem dieses Objekt zugeordnet ist. CoreDispatcher stellt eine Funktion dar, die auf das DependencyObject im UI-Thread zugreifen kann, auch wenn der Code von einem Nicht-UI-Thread initiiert wird. (Geerbt von DependencyObject) |
IsSourceGrouped |
Ruft einen Wert ab, der angibt, ob Quelldaten gruppiert sind, oder legt diesen fest. |
IsSourceGroupedProperty |
Gibt die Abhängigkeitseigenschaft IsSourceGrouped an. |
ItemsPath |
Ruft den Eigenschaftenpfad ab, dem das Element der obersten Ebene folgen soll, um Gruppen innerhalb der CollectionViewSource zu finden, oder legt diesen fest. |
ItemsPathProperty |
Gibt die ItemsPath-Abhängigkeitseigenschaft an. |
Source |
Ruft das Auflistungsobjekt ab oder legt es fest, über das diese Ansicht erstellt wird. |
SourceProperty |
Gibt die Source-Abhängigkeitseigenschaft an. |
View |
Ruft das Ansichtsobjekt ab, das dieser instance von CollectionViewSource derzeit zugeordnet ist. |
ViewProperty |
Methoden
ClearValue(DependencyProperty) |
Löscht den lokalen Wert einer Abhängigkeitseigenschaft. (Geerbt von DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
Gibt einen beliebigen Basiswert zurück, der für eine Abhängigkeitseigenschaft festgelegt wurde, was in Fällen gilt, in denen eine Animation nicht aktiv ist. (Geerbt von DependencyObject) |
GetValue(DependencyProperty) |
Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft aus einem DependencyObject zurück. (Geerbt von DependencyObject) |
ReadLocalValue(DependencyProperty) |
Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, wenn ein lokaler Wert festgelegt ist. (Geerbt von DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registriert eine Benachrichtigungsfunktion zum Lauschen auf Änderungen an einer bestimmten DependencyProperty für dieses DependencyObject-instance. (Geerbt von DependencyObject) |
SetValue(DependencyProperty, Object) |
Legt den lokalen Wert einer Abhängigkeitseigenschaft für ein DependencyObject fest. (Geerbt von DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Bricht eine Änderungsbenachrichtigung ab, die zuvor registriert wurde, indem RegisterPropertyChangedCallback aufgerufen wurde. (Geerbt von DependencyObject) |