Bonjour tout le monde !
J'aimerai pouvoir créer des colonnes personnalisées pour ma DataGrid.
Par exemple, je veux créer une colonne de type DatePicker.
J'ai opté pour une classe partielle divisée entre C# et XAML parce que je pensais que ce serait le plus simple pour construire les templates facilement avec XAML.
Voilà mes codes :
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public partial class DataGridDateColumn : DataGridTemplateColumn { public Binding Binding { set { } } public DataGridDateColumn() : base() { InitializeComponent(); } }
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <sdk:DataGridTemplateColumn x:Class="SilverlightGrid.DataGridDateColumn" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" Width="100" > <!-- Template de la cellule en affichage standard --> <sdk:DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock x:Name="affichage"/> </DataTemplate> </sdk:DataGridTemplateColumn.CellTemplate> <!-- Template de la cellule en mode édition --> <sdk:DataGridTemplateColumn.CellEditingTemplate> <DataTemplate> <sdk:DatePicker /> </DataTemplate> </sdk:DataGridTemplateColumn.CellEditingTemplate> </sdk:DataGridTemplateColumn>
Cependant, je souhaiterais pouvoir modifier dynamiquement le Binding de la colonne, et donc du TextBlock et du DatePicker.
Je n'arrive pas à y accéder via le C#, mais via le XAML oui (ce qui n'est pas suffisant dans mon cas).
Vous voyez que j'ai mis un attribut x:Name au TextBlock et pourtant rien n'y fait, IntelliSense ne le détecte pas.
Y-a-t-il une autre méthode d'y accéder ?
Merci.
Partager