CollectionViewSource Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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 |
DispatcherQueue |
Obtient le |
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) |