Bonjour,
J'ai actuellement un petit souci avec les composants qui affichent des listes (ListView ou TreeView)
Si mon ItemsSource est un ObservableCollection<string>, il m'est impossible de modifier les string de cette collection, aucune modification n'est renvoyé à la collection.
J'ai essayé ceci (Items est la collection de string de mon Datacontext)
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <ListView Name="lvAttr" ItemsSource="{Binding Items}"> <ListView.ItemTemplate> <DataTemplate> <TextBox Text="{Binding Path=., Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" /> </DataTemplate> </ListView.ItemTemplate> </ListView>
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <TreeView ItemsSource="{Binding Items}"> <TreeView.Resources> <DataTemplate DataType="{x:Type system:String}"> <TextBox Text="{Binding Path=., Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/> </DataTemplate> </TreeView.Resources> </TreeView>
J'ai également essayé un binding sur SelectedItem ou SelectedValue de ListView, idem, aucune modif n'est renvoyé
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <ListView Name="lvAttr" ItemsSource="{Binding Items}" /> <TextBox Text="{Binding ElementName=lvAttr, Path=SelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
Alors, j'ai pu me faire une mini classe qui a une propriété qui pointe vers ma string, et là ça marche
mais j'aurais souhaité garder des listes de strings.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public class TestValue { private int index; private ObservableCollection<string> tp; public TestValue(int v, ObservableCollection<string> col) { index = v; tp = col; } public string Get { get { return tp[index]; } set { tp[index] = value; } } }
Donc, fais-je quelque chose de mal, ou autre ?
Merci d'avance![]()
Partager