Bonjour,
J'ai un petit problème de compréhension sur le mécanisme à mettre en place pour mon application.
Je m'explique:
J'ai un modèle de données qui est le suivant:
Une classe Categories qui comprend une ObservableCollection de SubCategories qui comprend elle même une ObsevableCollection Elements.
Dans ma vue principale j'utilise un contrôle Pivot qui m'affiche les données comme suit:
- PivotItem1 affiche les Categories via une ListBox1
- PivotItem2 affiche les SubCategories via une ListBox2 de la Category sélectionnée dans le ListBox1
- PivotItem3 affiche les Elements via une Listbox3 de la SubCategory sélectionné dans ListBox2.
Chaque ListPicker est bindé comme suit:
- ListBox1:- ListBox2:
Code : Sélectionner tout - Visualiser dans une fenêtre à part ItemsSource="{Binding Path=Categories}" SelectedItem="{Binding Path=SelectedCategory}"- ListBox3:
Code : Sélectionner tout - Visualiser dans une fenêtre à part ItemsSource="{SelectedCategory.SubCategories}" SelectedItem="{Binding Path=SelectedSubCategory}"Donc jusque là tout se passe bien quand je sélectionne la catégorie j'ai bien que ses propres sous catégories etc....
Code : Sélectionner tout - Visualiser dans une fenêtre à part ItemsSource="{Binding Path=SelectedSubCategory.Elements}" SelectedItem={Binding Path=SelectedElement}"
Le problème arrive pour la création d'un élément dont le scénario est le suivant:
Je souhaites permettre à l'utilisateur de soit:
- Créer un Element en sélectionnant au préalable une Category et/ou une SubCategory.
- Créer un Element sans rien sélectionner.
Le tout à partir d'un seul et unique ApplicationBarButton.
Pour la création d'un Element j'utilise une autre View qui reprend les données sélectionnée ou non dans la View principale.
Le problème est de faire la synchro entre les deux Views. Donc je me suis dit que j'allais utiliser le même ViewModel et ainsi Binder les même élément de ce fait lorsque l'utilisateur change sa sélection dans la View qui permet d'ajouter un élément les sélections se mettent à jour dans la vue principale.
Mais le problème c'est que ça ne fonctionne pas !
si je change la sélection dans la deuxième View et que je retourne dans la View principale il m'indique un problème IndexOutOfRange.
Désolé c'est un peu long mais c'est pour avoir plus de clarté sur le sujet.
Merci
Partager