bonjour,
ma question va vous paraître très simple :
j'ai un usercontrol qui contient une listview, qui utilise itemtemplateselctor.
la page principale a un ViewModel ainsi que les usercontrol selector.
mon problème est le suivant : je veux agir sur les usercontrols des itemtemplateselector pour récupérer les valeurs saisies et faire mes traitement dessus.
voici le code xaml de ma page principale :
le code xaml d'un de mes usercontrol tempalteselector :
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
25
26
27
28
29
30
31
32 <UserControl.Resources> <DataTemplate x:Key="IntDataTemplate"> <local:IntDataTemplateView UserFieldUser="{Binding .}" /> </DataTemplate> <DataTemplate x:Key="StringDataTemplate"> <local:StringDataTemplateView /> </DataTemplate> <DataTemplate x:Key="DateDataTemplate"> <local:DateDataTemplateView /> </DataTemplate> <DataTemplate x:Key="DefaultDataTemplate"> <local:DefaultDataTemplateView /> </DataTemplate> <local:PropertyDataTemplateSelector x:Key="PropertyDataTemplateSelector" DateDataTemplate="{StaticResource DateDataTemplate}" DefaultDataTemplate="{StaticResource DefaultDataTemplate}" IntDataTemplate="{StaticResource IntDataTemplate}" StringDataTemplate="{StaticResource StringDataTemplate}" /> </UserControl.Resources> <ListView Name="ListViewGlobal" IsSynchronizedWithCurrentItem="True" ItemTemplateSelector="{StaticResource PropertyDataTemplateSelector}" ItemsSource="{Binding MesDonnees, Mode=TwoWay}" ScrollViewer.HorizontalScrollBarVisibility="Auto" SelectedValue="{Binding SelectedValue, Mode=TwoWay}" SelectionMode="Extended"> </ListView>
le code c# du templateselctor :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <Grid x:Name="RootGrid"> <TextBox MinWidth="100" Margin="5 0 5 0" Text="{Binding InputValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" /> </Grid>
le selector marche bien, je choisi le bon usercontrol, le champ textbox est bien rempli, mais je n'arrive pas à récuperer la valeur modifié de mon textbox et faire mes traitements dessus . comment je peux faire pour injecter les données dans le viewmodel de mon usercontrol template ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public override System.Windows.DataTemplate SelectTemplate(object item, DependencyObject container) { MonViewModel mv = item as MonViewModel ; switch(mv) { case mv.int : return IntDataTemplate; ...
ensuite, je dois renvoyer cette valeur a mon usercontrol principale, autre probème.
merci d'avance de votre aide
Partager