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