Meilleur auteur de réponses
effacer une entré sqlce

Question
-
Bonjour a tous,
J'ai un problème d'effacement d'entré dans une application wp 7.1.
J'affiche les entrées d'une table sqlce dans une listbox aux moyen de liste et je veut pouvoir proposer a l'utilisateur de l'effacer au moyen d'un bouton.
Le problème est qu'en cas d'appuis sur ce bouton, c'est la première liste afficher dans la listbox qui est effacer mais pas celle qui est sélectionner.
Voila mon code:
Preparation de la liste a afficher dans la listbox:
Le C#:
var Liste1 = from TABLE1 t in MYDB.TABLE1s
where t.Nom == nomObjet
orderby t.Date descending
select t;
this.Listbox1.ItemsSource = Liste1;
Le xaml:
<ListBox x:Name="Listbox1" ScrollViewer.VerticalScrollBarVisibility="Hidden" Height="671" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Background="#d23438" Margin="0,10,0,10" Width="440">
<TextBlock Text="{Binding Item1}" FontSize="30" TextWrapping="Wrap" HorizontalAlignment="Left" Width="Auto" Margin="10,10,10,10" VerticalAlignment="Stretch" />
<TextBlock Text="{Binding item2}" FontSize="30" TextWrapping="Wrap" HorizontalAlignment="Left" Width="Auto" Margin="10,10,10,0" VerticalAlignment="Stretch" />
<TextBlock Text="{Binding item3}" FontSize="30" TextWrapping="Wrap" HorizontalAlignment="Left" Width="Auto" Margin="10,10,10,0" VerticalAlignment="Stretch" />
<TextBlock Text="{Binding item4}" FontSize="30" TextWrapping="Wrap" HorizontalAlignment="Left" Width="Auto" Margin="10,10,10,10" VerticalAlignment="Stretch" />
<telerikPrimitives:RadImageButton ButtonShape="Image" ButtonType="Custom" RestStateImageSource="/Images/check/deletevert.png" PressedStateImageSource="/Images/check/deleterouge.png" Click="Click_delete" HorizontalAlignment="Left" Foreground="{x:Null}" VerticalAlignment="Bottom"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Le click pour supprimer:private void Click_delete(object sender, RoutedEventArgs e)
{
IQueryable<TABLE1> table1query = from t in MYDB.TABLE1s where t.Nom == nomObjet select t;
TABLE1 table1ToDelete = table1query.FirstOrDefault();
MYDB.TABLE1s.DeleteOnSubmit(table1ToDelete);
MYDB.SubmitChanges();
var Liste1 = from TABLE1 t in MYDB.TABLE1s
where t.Nom == nomObjet
orderby t.Date descending
select t;
this.Listbox1.ItemsSource = Liste1;
}Merci de votre aide
Patrice- Modifié pbaranx mardi 27 août 2013 07:23
Réponses
-
Mais avec ton table1query.FirstOrDefault(); dans ta méthode Click_Delete(), c'est normal que c'est le premier qui soit supprimé.
Il faut que tu identifies "le" record à supprimer
Par exemple tu mets dans la propriété Tag="" de ton DataTemplate l'ID du record. Puis tu récupères ce dernier dans dans ta méthode Click_Delete()
Christophe
- Modifié Christophe PeuMVP mardi 27 août 2013 07:29
- Marqué comme réponse pbaranx mardi 27 août 2013 07:37
Toutes les réponses
-
Mais avec ton table1query.FirstOrDefault(); dans ta méthode Click_Delete(), c'est normal que c'est le premier qui soit supprimé.
Il faut que tu identifies "le" record à supprimer
Par exemple tu mets dans la propriété Tag="" de ton DataTemplate l'ID du record. Puis tu récupères ce dernier dans dans ta méthode Click_Delete()
Christophe
- Modifié Christophe PeuMVP mardi 27 août 2013 07:29
- Marqué comme réponse pbaranx mardi 27 août 2013 07:37
-
-
pour récupérer l'objet dans la méthode j'utilise ce genre de méthode (bon passé par le VisualTreeHelper est un peu, disons, pas trop orthodoxe :)
private void Click_delete(object sender, RoutedEventArgs e) { var menuItem = sender as MenuItem; var vth = VisualTreeHelper.GetParent(menuItem) as FrameworkElement; MonObjet obj = vth.DataContext as monItem; //exemple si Liste1.Remove(obj); //après ici ton code sqlce }
Christophe http://www.peug.net http://www.sodeasoft.com
- Proposé comme réponse ceriboo mardi 27 août 2013 09:36