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 Gruppierungs- und Aktuelle-Element-Unterstützung zu Sammlungsklassen hinzufügt.
public ref class CollectionViewSource sealed : DependencyObject
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 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.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class CollectionViewSource : DependencyObject
Public NotInheritable Class CollectionViewSource
Inherits DependencyObject
<CollectionViewSource .../>
- Vererbung
- Attribute
Beispiele
Tip
Weitere Informationen, Entwurfsanleitungen und Codebeispiele finden Sie unter semantischen Zoom.
Die WinUI 3 Gallery-App enthält interaktive Beispiele für die meisten WinUI 3-Steuerelemente, -Features und -Funktionen. Holen Sie sich die App aus dem Microsoft Store oder holen Sie sich den Quellcode auf GitHub.
Im folgenden Codebeispiel wird veranschaulicht, wie ein ListBox-Steuerelement an die Ergebnisse einer LINQ-Gruppierungsabfrage gebunden wird. In diesem Beispiel wird eine Sammlung von Teams nach Ort gruppiert und mit dem Ortsnamen als Gruppenkopfzeilen 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.View}}">
<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;
Hinweise
Verwenden Sie CollectionViewSource, wenn Sie Listensteuerelemente an Sammlungen binden möchten, diese Sammlungen jedoch 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. In der Regel definieren Sie eine CollectionViewSource als XAML-Ressource und binden diese mithilfe der Markuperweiterung {StaticResource}. Anschließend können Sie die Source-Eigenschaft im CodeBehind auf einen unterstützten Sammlungstyp festlegen.
Alle Steuerelemente, die Sie an dieselbe CollectionViewSource binden, weisen immer dasselbe aktuelle Element auf. Sie können programmgesteuert über die ICollectionView.CurrentItem-Eigenschaft des CollectionViewSource.View-Eigenschaftswerts auf das aktuelle Element zugreifen.
Wenn es sich bei den Elementen in der Auflistung um Sammlungen selbst oder um Objekte handelt, die Sammlungen enthalten, können Sie die Auflistungen als Gruppen innerhalb der größeren Auflistung anzeigen. Legen Sie dazu die IsSourceGrouped-Eigenschaft auf "true" fest. Wenn die Elemente Sammlungen enthalten, aber keine Auflistungen selbst sind, müssen Sie auch die ItemsPath-Eigenschaft auf den Namen der Auflistungseigenschaft festlegen.
Hinweis
Das Festlegen der Source-Eigenschaft auf eine andere CollectionViewSource-Instanz wird nicht unterstützt.
Konstruktoren
| Name | Beschreibung |
|---|---|
| CollectionViewSource() |
Initialisiert eine neue Instanz der CollectionViewSource-Klasse . |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Dispatcher |
Gibt immer in einer Windows App SDK-App zurück |
| DispatcherQueue |
Ruft ab |
| IsSourceGrouped |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob Quelldaten gruppiert sind. |
| IsSourceGroupedProperty |
Identifies the IsSourceGrouped dependency property. |
| ItemsPath |
Ruft den zu befolgenden Eigenschaftspfad aus dem Element der obersten Ebene ab, um Gruppen innerhalb der CollectionViewSource zu finden, oder legt diesen fest. |
| ItemsPathProperty |
Identifies the ItemsPath dependency property. |
| Source |
Dient zum Abrufen oder Festlegen des Auflistungsobjekts, aus dem diese Ansicht erstellt werden soll. |
| SourceProperty |
Identifies the Source dependency property. |
| View |
Ruft das Ansichtsobjekt ab, das derzeit dieser Instanz von CollectionViewSource zugeordnet ist. |
| ViewProperty |
Identifies the View dependency property. |
Methoden
| Name | Beschreibung |
|---|---|
| ClearValue(DependencyProperty) |
Löscht den lokalen Wert einer Abhängigkeitseigenschaft. (Geerbt von DependencyObject) |
| GetAnimationBaseValue(DependencyProperty) |
Gibt einen Basiswert zurück, der für eine Abhängigkeitseigenschaft eingerichtet wurde, was in Fällen angewendet wird, 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 wird. (Geerbt von DependencyObject) |
| RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registriert eine Benachrichtigungsfunktion, um Änderungen an einer bestimmten DependencyProperty für diese DependencyObject-Instanz zu überwachen. (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 durch Aufrufen von RegisterPropertyChangedCallback registriert wurde. (Geerbt von DependencyObject) |