CollectionViewSource Klasse

Definition

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
Object Platform::Object IInspectable DependencyObject CollectionViewSource
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 null . Verwenden Sie stattdessen DispatcherQueue .

(Geerbt von DependencyObject)
DispatcherQueue

Ruft ab DispatcherQueue , dem dieses Objekt zugeordnet ist. Dies DispatcherQueue stellt eine Einrichtung dar, die auf den DependencyObject UI-Thread zugreifen kann, auch wenn der Code von einem Nicht-UI-Thread initiiert wird.

(Geerbt von DependencyObject)
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)

Gilt für:

Weitere Informationen