Bonjour,
Je travaille avec Visual Studio 2008 et Silverlight 3 (c# en code behind).
J'ai besoin d'intégrer des combobox dans un datagrid.
Ce datagrid est peuplé par une collection (dont les résultats sont tirés d'une vue), il s'alimente correctement.
Dans mon datagrid, j'ai une colonne de combobox créée dans le XAML.
Cette colonne est peuplée grâce à une collection différente de celle du datagrid.
Elle s'alimente correctement mais je n'arrive pas à conserver la valeur sélectionnée lorsque la combobox perd le focus.
Plus concrètement :
Au chargement de la cellule, une valeur est affichée dans le Textblock (cf propriété "Text").
Lorsque l'on sélectionne un élément dans la combobox, j'arrive à récupérer la nouvelle valeur sélectionnée dans une variable (grâce à l'événement "SelectionChanged" de ma combobox)
Mais je n'arrive pas à mémoriser cette valeur dans la propriété "Text" du Textblock de la cellule.
Du coup, impossible de mémoriser la nouvelle sélection effectuée.
Ci-dessous un aperçu de mon code XAML :
Précisions sur le code : l'ItemSource de la combobox est effectué dans le code behind.
Code : 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 <!--es - Définition de la colonne de COMBOBOX COMPTE TVA: --> <data:DataGridTemplateColumn Header="Compte TVA" Width ="100"> <data:DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock x:Name="TeB_CompteTva" Text="{Binding COMPTE_TVA}" Width="100" VerticalAlignment="Center" HorizontalAlignment="Left"/> </DataTemplate> </data:DataGridTemplateColumn.CellTemplate> <data:DataGridTemplateColumn.CellEditingTemplate> <DataTemplate> <ComboBox x:Name="CoB_ComptesTva" Loaded="CoB_ComptesTva_Loaded" SelectedItem="{Binding CodeCompteTva, Mode=TwoWay}" DisplayMemberPath="CodeCompteTva" Width="100" VerticalAlignment="Center" HorizontalAlignment="Left" SelectionChanged="CoB_ComptesTva_SelectionChanged"/> </DataTemplate> </data:DataGridTemplateColumn.CellEditingTemplate> </data:DataGridTemplateColumn>
"CodeCompteTva" correspond à une propriété de la collection qui alimente l'ItemSource.
J'ai essayé de "binder" de plusieurs façons la propriété "Text" du Textblock mais le résultat ne fonctionne pas ou ne correspond pas à ce que je veux.
Et je n'arrive pas à "attaquer" le Textblock depuis le code behind.
Que me conseillez-vous ?
Cordialement,
Partager