Retrouvez moi aux Techdays 2010 le 8 Février de 11h00 à 12h00#

image

J’ai le plaisir de vous annoncer que je co-animerais avec Arnaud Auroux la session intitulée “Silverlight 4 : Cas pratique du mode déconnecté” aux TechDays 2010 le lundi 8 février de 11h00 à 12h00. Dans cette session nous allons développer une application silverlight qui fonctionne en connecté / déconnecté tout en insistant sur les “Best practices”. Nous parlerons Silverlight, PRISM, Sync framework, injection de dépendances… Nous vous attendons nombreux!!!

Sunday, January 31, 2010 4:40:00 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

Personnaliser les colonnes d'un DataGrid en Silverlight : 1ère partie#

Nous avons vu dans ce post comment afficher des données provenant d’un service WCF dans un DataGrid. Nous avons utilisé pour cela la génération automatique de colonnes à partir de la source de données en utilisant l’attribut AutoGenerateColumns="True". Dans ce post nous allons partir de l’exemple précédemment réalisé pour personnaliser les colonnes de la grille.

Voici le code duquel nous allons partir :

<Data:DataGrid x:Name="TasksGrid" Style="{StaticResource MyGridStyle}" ItemsSource="{Binding Tasks}">
</Data:DataGrid>

L’attribut AutoGenerateColumns n’est pas spécifié parce que par défaut AutoGenerateColumns est positionné à True.

Pour rappel, voici la classe Task :

public class Task
{
        public int Id { get; set; }

        public string Name { get; set; }

        public bool Realized { get; set; }
}

Et en utilisant l’auto génération de colonnes voici ce qu’on obtient :

image

Supposons maintenant que l’on veut afficher uniquement la colonne Name et la colonne Realized uniquement. Pour cela nous allons tout d’abord mettre l’attribut AutoGenerateColumns du DataGrid à False et puis nous allons définir les colonnes contenues dans notre grille. Pour cela nous disposons de 3 types de colonnes :

- DataGridTextColumn : une colonne de type texte

- DataGridCheckBoxColumn : une colonne de type CheckBox

- DataGridTemplateColumn : une colonne personnalisée qui peut contenir tout ce qu’on veut

Pour notre exemple, nous allons utiliser le DataGridTextColumn pour la colonne Name et un DataGridCheckBoxColumn pour la colonne Realized.

Dans le fichier Tasks.xaml trouver cette balise DataGrid

<Data:DataGrid x:Name="TasksGrid" Style="{StaticResource MyGridStyle}" ItemsSource="{Binding Tasks}">
</Data:DataGrid>

et Remplacez le par cette balise

<Data:DataGrid x:Name="TasksGrid" AutoGenerateColumns="False" Style="{StaticResource MyGridStyle}" ItemsSource="{Binding Tasks}">
       <Data:DataGrid.Columns>
           <Data:DataGridTextColumn Binding="{Binding Name}" Header="Nom"></Data:DataGridTextColumn>
           <Data:DataGridCheckBoxColumn Binding="{Binding Realized}" Header="Réalisé"></Data:DataGridCheckBoxColumn>
       </Data:DataGrid.Columns>
</Data:DataGrid>

En définissant les colonnes de la DataGrid de cette manière, nous pouvons les personnaliser en définissant par exemple si ces colonnes peuvent être ordonnées en utilisant l’attribut “CanUserSort”. Nous pouvons aussi définir si nous pouvons redimensionner la colonne en utilisant l’attribut “CanUserResize”. Les colonnes deviennent personnalisables au maximum d’une manière très simple.

Sunday, January 17, 2010 2:54:00 PM (Romance Standard Time, UTC+01:00) #    Comments [0]  | 

 

All content © 2012, Zied Nemili