Meilleur auteur de réponses
Problème checkbox, binding

Question
-
Bonjour,
J'ai une page où j'affiche, dans une listbox, une liste de tâche qu'on peut cocher via une checkbox.
<CheckBox x:Name="checkBox" Checked="checkBox_Checked" Unchecked="checkBox_Unchecked" Tag="{Binding Id}" IsChecked="{Binding Checked}"/> <TextBlock x:Name="lblTaskName" TextWrapping="Wrap" Text="{Binding Name}" VerticalAlignment="Center" Margin="5"/>
Là, deux options s'offre à moi :
-Aucun élément n'est coché lors du remplissage de la listbox, tout va bien
-Un (ou plusieurs) éléments sont déjà cochés, et donc, lors du remplissage de la listbox, checkBox_Checked est invoqué pour chaque élément déjà coché. Ce que je ne souhaite pas !
Comment résoudre ce problème ?
Merci d'avance !
- Modifié Yorublaireau lundi 30 avril 2012 16:01
lundi 30 avril 2012 16:01
Réponses
-
Bonjour,
Essai ceci :
Tu mets une varible boolean dans ta class du style
private bool _loaded=false;
Dans tes checkBox_Checked, tu ajoutes au début
if (!_loaded) return;
Dans ton OnNavigatedTo ,tu t'abonnes sur layoutupdated
Dans layoutupdated tu mets :
_loaded=true;
et aussi tu t'y désabonnes !
christophe
- Modifié Christophe PeuMVP mardi 1 mai 2012 15:46
- Proposé comme réponse Pascal Saille mercredi 2 mai 2012 08:23
- Marqué comme réponse Ciprian Duduiala vendredi 4 mai 2012 06:09
mardi 1 mai 2012 15:46 -
Toss.net : ca depend le temps du chargement de ces données, Loaded peut arriver bcp trop tot.
Ce qu'il te fait c'est juste t'enregistrer sur l'évenement Clicked et de tester ainsi :
var ischecked=((CheckBox)sender).IsChecked.Value; if(ischecked) { .... }
S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue
- Modifié rudyhuynMVP mercredi 2 mai 2012 15:37
- Marqué comme réponse Ciprian Duduiala vendredi 4 mai 2012 06:09
mercredi 2 mai 2012 15:36
Toutes les réponses
-
Bonjour,
Essai ceci :
Tu mets une varible boolean dans ta class du style
private bool _loaded=false;
Dans tes checkBox_Checked, tu ajoutes au début
if (!_loaded) return;
Dans ton OnNavigatedTo ,tu t'abonnes sur layoutupdated
Dans layoutupdated tu mets :
_loaded=true;
et aussi tu t'y désabonnes !
christophe
- Modifié Christophe PeuMVP mardi 1 mai 2012 15:46
- Proposé comme réponse Pascal Saille mercredi 2 mai 2012 08:23
- Marqué comme réponse Ciprian Duduiala vendredi 4 mai 2012 06:09
mardi 1 mai 2012 15:46 -
Bonjour, Yorublaireau,
Est-ce que vous avez testé la solution proposée ? Merci de partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.
Bonne journée,
Cipri
Ciprian DUDUIALA, MSFT  
•Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.
mercredi 2 mai 2012 12:23 -
Toss.net : ca depend le temps du chargement de ces données, Loaded peut arriver bcp trop tot.
Ce qu'il te fait c'est juste t'enregistrer sur l'évenement Clicked et de tester ainsi :
var ischecked=((CheckBox)sender).IsChecked.Value; if(ischecked) { .... }
S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue
- Modifié rudyhuynMVP mercredi 2 mai 2012 15:37
- Marqué comme réponse Ciprian Duduiala vendredi 4 mai 2012 06:09
mercredi 2 mai 2012 15:36