ListView/TV sur collection de string, impossible de modifier
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:
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:
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:
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
Code:
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; }
}
} |
mais j'aurais souhaité garder des listes de strings.
Donc, fais-je quelque chose de mal, ou autre ?
Merci d'avance ;)