Bonjour,
Soit le xaml suivant:
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
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>
Puis le code du Delete:
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()); }
Problème:erreur sur 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); }
SystemInvalidCastException:Impossible d'effectuer un cast d'un objet de type AnonymousType0 .... en type System.Data.DataRowView
D'avance merci.
Partager