DataGrid récupérer la valeur d'une cellule
Bonjour,
Soit le xaml suivant:
Code:
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:
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:
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.