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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
commandNewCustomer = new RelayCommand(() =>
           {
                      MyCustomers.Add(new Customer() { etc ..... });
           }, () => true);
ViewModel - Public Property
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
MyCustomers= new List<Customer>();
MyCustomers.Add(new Customer() { etc .... });
Merci encore pour votre aide.