Bonjour,
Soit le xaml suivant:
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
 
                <DataGrid x:Name="List_E"  HeadersVisibility="None" AutoGenerateColumns="False" IsReadOnly="True" VerticalAlignment="Center" Height="739" SelectionUnit="FullRow" Width="690">
                    <DataGrid.Columns>
 
                        <DataGridTextColumn Header="Nom" Binding="{Binding Nom}" FontWeight="Bold"/>
                          ....
                        <DataGridTextColumn Header="ID" Binding="{Binding CEID}" Foreground="Red"/>
                        <DataGridTemplateColumn>
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <Button Width="100" IsEnabled="{Binding PDC}" Click="Del_CE">
                                        <StackPanel>
                                            <TextBlock Text="Delete"/>
                                        </StackPanel>
                                    </Button>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
 
 
 
                    </DataGrid.Columns>
 
                </DataGrid>
Code du remplissage de List_E (à partir du DataSet DS):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
                            List_E.Items.Clear();
                            foreach (DataRow dr in DS.Tables[0].Rows)
                            {
 
                                if (dr["PDC"].ToString() == "1")
                                { List_E.Items.Add(new { Nom = dr["Nom"].ToString(), Prenom = dr["Prenom"].ToString(), Heure_arr = dr["Heure_arr"].ToString(), An = dr["An"].ToString(), CEID = dr["CEID"].ToString(), PDC = true }); }
                                { List_E.Items.Add(new { Nom = dr["Nom"].ToString(), Prenom = dr["Prenom"].ToString(), Heure_arr = dr["Heure_arr"].ToString(), An = dr["An"].ToString(), CEID = dr["CEID"].ToString(), PDC = false }); }
                                // List_E.Items.Add(dr["Nom"].ToString(),dr["Prenom"].ToString(),dr["Heure_arr"].ToString());
                            }
Puis le code du Delete:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
        private void Del_CE(object sender,RoutedEventArgs e)
        {
            DataRowView drv = (DataRowView)List_E.SelectedItem;
            String result = (drv["CEID"]).ToString();
 
            //     MessageBox.Show(result);
        }
Problème:erreur sur Delete:
SystemInvalidCastException:Impossible d'effectuer un cast d'un objet de type AnonymousType0 .... en type System.Data.DataRowView

D'avance merci.