Bonjour,

Je crée une application WPF en essayant de suivre le pattern MVVM (MVVM Light).
J'ai un Datagrid qui contient 3 colonne.
1 colonne de texte
2 colonnes avec une combobox chacune.

Voici le code des combobox :



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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
 
  <DataGrid 
                        Name="dataGridMapingMissing" 
                        ItemsSource="{Binding ItemsToAddToTheCurrentCsvFile, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
	                    HorizontalAlignment="Left"
	                    Margin="38,10,0,0"
	                    VerticalAlignment="Top" Height="265" Width="584"
                        CanUserAddRows="False"
                        ColumnWidth="*" 
                        Grid.ColumnSpan="2"
                        AutoGenerateColumns="False"
                        CanUserSortColumns="False">
                        <DataGrid.Columns>
                            <DataGridTextColumn 
                                    Header="Skill Name" 
                                    Binding="{Binding SkillName, UpdateSourceTrigger=PropertyChanged}">
                            </DataGridTextColumn>
 
                                <DataGridTemplateColumn 
                                    Header="Skill Mapping">                                   
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <ComboBox 
                                                IsEditable="True"
                                                ItemsSource="{Binding DataContext.ListMapping ,
                                                UpdateSourceTrigger=PropertyChanged,
                                                RelativeSource={RelativeSource AncestorType=Window}}"
                                                SelectedItem="{Binding SkillMapping, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
                                                SelectedValue="{Binding SkillMapping, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
                                                FontSize="20"/>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn> 
                            <DataGridTemplateColumn Header="Skill Group">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <ComboBox  
                                                IsEditable="True"
                                                ItemsSource="{Binding DataContext.SkillGroupCollection,
                                                UpdateSourceTrigger=PropertyChanged,
                                                RelativeSource={RelativeSource AncestorType=Window}}"
                                                SelectedItem="{Binding SkillGroup, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
                                                SelectedValue="{Binding SkillGroup, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"                                                                                               
                                                FontSize="20"/>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>
                        </DataGrid.Columns>
                    </DataGrid>
 
    <Button 
                        Content="Save Modification" 
                        Name="btSaveModificationGridMapping" 
                        Margin="270,285,271,23" 
                        RenderTransformOrigin="3.099,0.436" 
                        Command="{Binding SaveUpdatedMappingFile}" 
                        Click="btSaveModificationGridMapping_Click" 
                        Grid.ColumnSpan="2"
                        />
La valeur entré dans le combobox au clavier, n'est pas toujours sauvegardé lorsque je clique sur le bouton sauvegarder.
Par contre lorsque je selectionne des éléments dans les combobox, elles sont bien sauvegarder.

J'ai l'impression que si je tape une nouvelle valeur dans le combobox(et que cette valeur n'existe donc pas encore dans le combobox), elle n'est pas prise en compte.
Je ne comprend pas trop pourquoi.


Pouriez-vous m'aider avec ce problem s'il vous plait?
Vous faut-il encore d'autre information?

Merci d'avance pour vos lumières.

Bien à vous,