Partager via


CollectionViewSource Classe

Définition

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

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

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Exemples

Conseil

Pour plus d’informations, des conseils de conception et des exemples de code, consultez Liaison de données en détail.

Si vous avez installé l’application Galerie WinUI 2 , cliquez ici pour ouvrir l’application et voir un exemple de regroupement avec SemanticZoom en action.

L’exemple de code suivant montre comment lier un contrôle ListBox aux résultats d’une requête LINQ de regroupement (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;

Pour obtenir un exemple plus détaillé, consultez l’exemple de liaison de données XAML.

Remarques

Utilisez CollectionViewSource lorsque vous souhaitez lier des contrôles de liste à des collections, mais que vous souhaitez afficher ces collections 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 l’élément actif d’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 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 des collections elles-mêmes, 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, définissez la propriété IsSourceGrouped surtrue. 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

La définition de la propriété Source sur un autre instance CollectionViewSource n’est pas prise en charge.

Constructeurs

CollectionViewSource()

Initialise une nouvelle instance de la classe CollectionViewSource.

Propriétés

Dispatcher

Obtient le CoreDispatcher auquel cet objet est associé. CoreDispatcher représente une installation qui peut accéder à 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 d’affichage 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’applique 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 objet 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