MVVM, ListBox et ajout d'élément
Bonjour à tous,
Je développe actuellement une application Silverlight. Cette application communique avec un Service WCF pour afficher une liste de clients.
J'utilise le pattern MVVM.
Au lancement de l'application, je charge une List de Client en récupérant les infos via WCF. Dès lors, les Clients apparaissent dans ma ListBox qui est bindé à la List de Client. Jusque là, rien de compliqué.
Mon soucis vient quand j'essaye d'ajouter un élement (ou de supprimer) de ma List. Je m'attendais à ce que ma ListBox se mette à jour en conséquence en faisant apparaitre (ou disparaitre) le Client. Mais il ne se passe rien ... Le code qui ajoute l'élément est bien executé et j'ai contrôlé la taille de la List. Elle augmente bien.
Je fais donc appel à vos lumières pour m'aider. Merci d'avance.
Pour compléter mon message, voici les différents éléments de mon code :
ViewModel - Command du bouton Ajouter
Code:
1 2 3 4 5
|
commandNewCustomer = new RelayCommand(() =>
{
MyCustomers.Add(new Customer() { etc ..... });
}, () => true); |
ViewModel - Public Property
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public List<Customer> MyCustomers
{
get
{
return myCustomers;
}
set
{
myCustomers= value;
RaisePropertyChanged("MyCustomers");
}
} |
Et côté View :
Code:
1 2 3 4 5 6
|
<ListBox Height="200" Margin="4,3,4,0" ItemTemplate="{StaticResource CustomerDataTemplate}" ItemsSource="{Binding MyCustomers}" SelectedItem="{Binding MySelectedCustomer, Mode=TwoWay}" >
<i:Interaction.Behaviors>
<ei:FluidMoveBehavior AppliesTo="Children"/>
</i:Interaction.Behaviors>
</ListBox> |
En fait, pour qu'il se passe quelque chose côté UI, il faut que je fasse un truc du genre :
Code:
1 2 3
|
MyCustomers= new List<Customer>();
MyCustomers.Add(new Customer() { etc .... }); |
Merci encore pour votre aide.