bonjour,

j'ai fais des recherche sur internet afin de pouvoir modifier les données de mon datagrid ou modifier mon fichier xml depuis mon code c#.

j'ai trouvé plein de chose (pour une fois) mais je ne comprend pas ce que j'ai trouvé (c'est pourtant en français).

alors voila ce que j'ai fais:

mon fichier xml (c'est le premier que je fais):

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
<?xml version="1.0" encoding="utf-8"?>
 
<scores>
 
  <score>
    <nom>test</nom>
    <valeur>11</valeur>
  </score>
 
  <score>
    <nom>retest</nom>
    <valeur>110</valeur>
  </score>
 
</scores>

j'ai creer ma datagrid et l'ai lié a mon fichier xml (il y a peut etre des choses qui ne servent a rien):

Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    <UserControl.Resources>
        <my:AddValueConverter x:Key="addValueConverter" />
        <XmlDataProvider x:Key="sauvegarde" Source="C:\Users\Bibi\Documents\Visual Studio 2010\Projects\jeu memo\jeu memo\Affichages\Plateau\testxml.xml" XPath="scores/score"/>
    </UserControl.Resources>
    <Grid>
 
        <Canvas>
            <DataGrid Name="grille" ItemsSource="{Binding Source={StaticResource sauvegarde}}"  AutoGenerateColumns="False" RowEditEnding="grille_RowEditEnding" >
                <DataGrid.Columns>
                    <DataGridTextColumn Header="Index" Binding="{Binding Path=(ItemsControl.AlternationIndex), RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGridRow}, Converter={StaticResource addValueConverter}, ConverterParameter=1}" />
                    <DataGridTextColumn Header="Nom" Binding="{Binding XPath=nom, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
                    <DataGridTextColumn Header="Score" Binding="{Binding XPath=valeur, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SortDirection="Descending" />
                </DataGrid.Columns>
            </DataGrid>
        </Canvas>

dans le c#, pour enregistrer les données qui ont étées modifié je fais ça:

Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
        private void grille_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
        {
            if (e.EditAction == DataGridEditAction.Commit)
            {
                XmlDataProvider myXmlDataProvider = (XmlDataProvider)this.FindResource("sauvegarde");
                myXmlDataProvider.Document.Save("C:\\Users\\Bibi\\Documents\\Visual Studio 2010\\Projects\\jeu memo\\jeu memo\\Affichages\\Plateau\\testxml.xml");
                e.Cancel = true;
            }
        }

ca marche bien.

ce que je voudrais faire c'est pouvoir parcourir les lignes de ma datagrid, modifier des éléments de ma datagrid, rajouter des éléments dans ma datagrid, tout ca depuis mon code c#.

c'est possible ? si oui pouvais vous m'aider car je suis en trait de me noyer.

Merci.