Partager via


CollectionViewSource Classe

Définition

Fournit une source de données qui ajoute le regroupement et la prise en charge de l’élément actuel aux classes de collection.

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 .../>
Héritage
Object Platform::Object IInspectable DependencyObject CollectionViewSource
Attributs

Exemples

Conseil

Pour plus d’informations, des conseils de conception et des exemples de code, consultez Zoom sémantique.

L’application WinUI 3 Gallery comprend des exemples interactifs de la plupart des contrôles et des fonctionnalités WinUI 3. Procurez-vous l’application sur le Microsoft Store ou le code source sur GitHub.

L’exemple de code suivant montre comment lier un contrôle ListBox aux résultats d’une requête LINQ de regroupement. Dans cet exemple, une collection d’équipes est regroupée par ville et affichée avec le nom de la ville comme en-têtes de groupe. Pour obtenir la liste complète du code, consultez l’exemple de liaison de données XAML.

<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;

Remarques

Utilisez CollectionViewSource lorsque vous souhaitez lier des contrôles de liste à des regroupements, mais que vous souhaitez afficher ces regroupements dans des groupes et conserver un élément actif indépendant du contrôle de liste. Cela est particulièrement utile lorsque vous souhaitez lier plusieurs contrôles à la même collection et que vous souhaitez que l’élément actuel dans un contrôle modifie l’élément actif dans les autres contrôles liés. Vous définissez généralement une collectionViewSource en tant que ressource XAML et vous la liez à l’aide de l’extension de balisage {StaticResource}. Vous pouvez ensuite définir sa propriété Source dans code-behind sur un type de collection pris en charge.

Tous les contrôles que vous liez au même Élément CollectionViewSource auront toujours le même élément actif. Vous pouvez accéder à l’élément actif par programmation via la propriété ICollectionView.CurrentItem de la valeur de la propriété CollectionViewSource.View .

Si les éléments de la collection sont eux-mêmes des collections, ou s’il s’agit d’objets qui contiennent des collections, vous pouvez afficher les collections en tant que groupes au sein de la collection plus grande. Pour ce faire, affectez à la propriété IsSourceGrouped la valeur true. Si les éléments contiennent des collections mais ne sont pas des collections elles-mêmes, vous devez également définir la propriété ItemsPath sur le nom de la propriété de collection.

Notes

L’affectation de la propriété Source à un autre instance CollectionViewSource n’est pas prise en charge.

Constructeurs

CollectionViewSource()

Initialise une nouvelle instance de la classe CollectionViewSource.

Propriétés

Dispatcher

Retourne null toujours dans une application SDK d'application Windows. Utilisez DispatcherQueue à la place.

(Hérité de DependencyObject)
DispatcherQueue

Obtient le DispatcherQueue auquel cet objet est associé. représente DispatcherQueue une fonctionnalité qui peut accéder au DependencyObject sur le thread d’interface utilisateur, même si le code est initié par un thread autre que l’interface utilisateur.

(Hérité de DependencyObject)
IsSourceGrouped

Obtient ou définit une valeur qui indique si les données sources sont regroupées.

IsSourceGroupedProperty

Identifie la propriété de dépendance IsSourceGrouped .

ItemsPath

Obtient ou définit le chemin de propriété à suivre à partir de l’élément de niveau supérieur pour rechercher des groupes dans CollectionViewSource.

ItemsPathProperty

Identifie la propriété de dépendance ItemsPath .

Source

Obtient ou définit l’objet de collection à partir duquel créer cet affichage.

SourceProperty

Identifie la propriété de dépendance source .

View

Obtient l’objet view actuellement associé à cette instance de CollectionViewSource.

ViewProperty

Identifie la propriété de dépendance View .

Méthodes

ClearValue(DependencyProperty)

Efface la valeur locale d’une propriété de dépendance.

(Hérité de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Retourne toute valeur de base établie pour une propriété de dépendance, qui s’appliquerait dans les cas où une animation n’est pas active.

(Hérité de DependencyObject)
GetValue(DependencyProperty)

Retourne la valeur effective actuelle d’une propriété de dépendance à partir d’un DependencyObject.

(Hérité de DependencyObject)
ReadLocalValue(DependencyProperty)

Retourne la valeur locale d’une propriété de dépendance, si une valeur locale est définie.

(Hérité de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Inscrit une fonction de notification pour écouter les modifications apportées à un DependencyProperty spécifique sur ce instance DependencyObject.

(Hérité de DependencyObject)
SetValue(DependencyProperty, Object)

Définit la valeur locale d’une propriété de dépendance sur un DependencyObject.

(Hérité de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Annule une notification de modification précédemment inscrite en appelant RegisterPropertyChangedCallback.

(Hérité de DependencyObject)

S’applique à

Voir aussi