Bonjour à tous,
je débute dans le développement d'application en MVVM (avec le framework MVVM Light) et je bloque sur le rafraîchissement d'un ListBox.
Lorsque je choisis un client dans un dataGrid, une propriété bindé sur l’évènement SelectedItem est mise à jour (la propriété CurrentClient).
Cette propriété va me permettre de mettre une liste à jour (suivant l'Id du client sélectionné, je vais rechercher la liste des sociétés qui lui sont liés).
J'ai mis des points d'arrêt dans mon code et le ViewModel fait exactement ce que j'attends de lui. Mais la Listbox n'est pas mise à jour (sauf quand je quitte ma view et que je reviens dessus).
Dans ma view j'ai ceci :
Dans ma ViewModel qui lui est liée, j'ai ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <ListBox HorizontalAlignment="Stretch" Margin="10,3,3,10" Name="lbCompanies" VerticalAlignment="Stretch" Grid.Row="1" ItemsSource="{Binding Companies}" />
Merci d'avance pour votre aide.
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
33
34
35
36
37
38 private ClientPresenter _currentClient; public ClientPresenter CurrentClient { get { return _currentClient; } set { _currentClient = value; RaisePropertyChanged("CurrentClient"); CurrentClientHasChanged(); } } private List<string> _companies = new List<string>(); public List<string> Companies { get { return _companies; } set { _companies = value; RaisePropertyChanged("Companies"); } } private void CurrentClientHasChanged() { if (CurrentClient.Id == 1) { Companies.Add("IBM"); Companies.Add("Microsoft"); } else { Companies = new List<string>(); } }
Partager