En savoir plus sur Xceed DataGrid pour WPF
Dans l'article précédent, nous avons abordé les bases de l'ajout de Xceed DataGrid for WPF à un nouveau projet d'application WPF. Nous avions terminé par une note sur la façon dont les deux Propriétés de l'élément AutoCreateItem propriété sur DataGridCollectionViewSourceet le Création automatique de colonnes propriété sur Contrôle DataGridsont vraies par défaut.
Cette fois-ci, nous allons examiner ces propriétés plus en détail, afin d'en savoir plus sur ce que la fonction Propriétés de l'élément AutoCreateItem et Création automatique de colonnes et comment nous pouvons les utiliser pour personnaliser le système de gestion de l'information de l'entreprise. Propriétés de l'article et Colonnes au lieu de laisser la grille de données tout charger automatiquement.
Introduction
Il y a essentiellement deux "couches" : d'abord la vue de collection avec ses propriétés d'élément, qui représente les champs de la source de données ; puis les colonnes de la grille de données, qui représentent les champs devant être présents dans la grille. Aux deux niveaux, il est possible de laisser Xceed DataGrid for WPF détecter automatiquement tous les champs et les inclure, ou de choisir de les spécifier explicitement.
DataGridCollectionView / AutoCreateItemProperties
Le DataGridCollectionView est utilisée pour envelopper toute collection qui implémente la méthode IEnumerable à regrouper, à trier ou à filtrer.
Quand Propriétés de l'élément AutoCreateItem est fixé à vrai (valeur par défaut), une propriété d'élément sera automatiquement créée dans la vue de collection pour chaque champ trouvé dans la table (ou autre) utilisée comme source de la vue de collection.
Par exemple :
<xcdg:DataGridCollectionViewSource x:Key="cvs_products"
Source="{Binding Source={x:Static Application.Current}, Path=Products}">
</xcdg:DataGridCollectionViewSource>
Cependant, il se peut que la source contienne des centaines de colonnes et que nous n'ayons besoin que de quelques unes d'entre elles. Dans ce cas, nous devrons définir Propriété AutoCreateItem à faux et spécifier les colonnes à inclure.
Par exemple :
<xcdg:DataGridCollectionViewSource x:Key="cvs_products"
Source="{Binding Source={x:Static Application.Current}, Path=Products}"
AutoCreateItemProperties="False">
<xcdg:DataGridCollectionViewSource.ItemProperties>
<xcdg:DataGridUnboundItemProperty Name="ProductID" Title="ID" />
<xcdg:DataGridUnboundItemProperty Name="ProductName" Title="Name" />
<xcdg:DataGridUnboundItemProperty Name="ProductPrice" Title="Price" />
</xcdg:DataGridCollectionViewSource.ItemProperties>
</xcdg:DataGridCollectionViewSource>
Il est également possible d'"ajouter" des données non liées à un élément de données en utilisant les propriétés de l'élément non lié, qui sont représentées par la balise DataGridUnboundItemProperty (classe). Ces propriétés d'éléments non liés peuvent être utilisées pour fournir des données supplémentaires, telles que des colonnes calculées
Par exemple :
<xcdg:DataGridCollectionViewSource x:Key="cvs_products"
Source="{Binding Source={x:Static Application.Current}, Path=Products}">
<xcdg:DataGridCollectionViewSource.ItemProperties>
<xcdg:DataGridUnboundItemProperty Name="TotalUnitsValue"
DataType="{x:Type sys:Double}"
QueryValue="DataGridUnboundItemProperty_QueryValue" />
</xcdg:DataGridCollectionViewSource.ItemProperties>
</xcdg:DataGridCollectionViewSource>
DataGridControl / AutoCreateColumns
Le Le contrôle DataGrid La collection de colonnes représente les colonnes présentes dans la grille de données. Les colonnes peuvent être visibles ou cachées, mais elles sont présentes pour être utilisées par la grille.
Quand Création automatique de colonnes est fixé à vrai (valeur par défaut), une colonne sera automatiquement créée dans le fichier Le contrôle DataGrid pour chaque propriété d'élément trouvée dans le DataGridCollectioView (ou autre) qui a été défini comme La grille de données source.
Par exemple :
<xcdg:DataGridControl x:Name="OrdersGrid"
ItemsSource="{Binding Source={StaticResource cvs_products}}">
</xcdg:DataGridControl>
Cependant, il se peut que nous ne voulions qu'un sous-ensemble pour les colonnes de notre grille. Dans ce cas, nous devrons définir Création automatique de colonnes à false et spécifier les colonnes à inclure.
Par exemple :
<xcdg:DataGridControl x:Name="OrdersGrid"
ItemsSource="{Binding Source={StaticResource cvs_products}}"
AutoCreateColumns="False">
<xcdg:DataGridControl.Columns>
<xcdg:Column FieldName="ProductID" Title="ID" />
<xcdg:Column FieldName="ProductName" Title="Name" />
<xcdg:Column FieldName="ProductPrice" Title="Price" />
</xcdg:DataGridControl.Columns>
</xcdg:DataGridControl>
Il est également possible d'ajouter des colonnes non liées. Celles-ci représentent une colonne qui peut être utilisée pour afficher des informations non liées à des données, telles qu'une étiquette ou des contrôles permettant d'effectuer une action quelconque (par exemple, un bouton permettant d'ouvrir une fenêtre dans laquelle l'élément en cours peut être modifié).
Par exemple :
<xcdg:DataGridControl x:Name="OrdersGrid"
ItemsSource="{Binding Source={StaticResource cvs_products}}">
<xcdg:DataGridControl.Columns>
<xcdg:UnboundColumn FieldName="EditRowColumn" Width="30">
<xcdg:UnboundColumn.CellContentTemplate>
<DataTemplate>
<Button Click="Button_Click" Content="..." />
</DataTemplate>
</xcdg:UnboundColumn.CellContentTemplate>
</xcdg:UnboundColumn>
</xcdg:DataGridControl.Columns>
</xcdg:DataGridControl>
Pour plus d'informations, veuillez vous référer à la la documentation.