Bonjour !
Je me trouve devant un problème de rafraichissement de ma listbox alors que j'ai une ObservableCollection en ItemSource ; j'utilise le pattern MVVM.
mon ViewModel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58Public Class MainWindowViewModel 'implémente INotifyPropertyChanged & IDisposable Inherits ViewModelBase 'Ma collection bindée Private _personList As ObservableCollection(Of Person) Public Property PersonList() As ObservableCollection(Of Person) Get If IsNothing(_personList) Then _personList = GetPersonList() End If Return _personList End Get Set(ByVal value As ObservableCollection(Of Person)) _personList = value OnPropertyChanged(Me, "PersonList") End Set End Property 'constructeurs (vides) Sub New() End Sub Sub New(ByVal mainWindow As MainWindow) End Sub 'génère une premier dataset Private Function GetPersonList() As ObservableCollection(Of Person) Dim l As New ObservableCollection(Of Person) l.Add(New Person("a", "b", "1", 1)) l.Add(New Person("c", "d", "2", 2)) l.Add(New Person("e", "f", "3", 3)) l.Add(New Person("g", "h", "4", 4)) l.Add(New Person("i", "j", "5", 5)) Return l End Function 'génère une deuxième dataset Private Function GetPersonList2() As ObservableCollection(Of Person) Dim l As New ObservableCollection(Of Person) l.Add(New Person("g", "h", "4", 4)) l.Add(New Person("e", "f", "3", 3)) l.Add(New Person("i", "j", "5", 5)) l.Add(New Person("c", "d", "2", 2)) l.Add(New Person("a", "b", "1", 1)) Return l End Function 'charge le deuxième dataset Public Sub Load() Me.PersonList = GetPersonList2() End Sub 'supprime le premier élément de la liste Public Sub Delete() If Me.PersonList.Count > 0 Then Me.PersonList.RemoveAt(0) OnPropertyChanged(Me, "PersonList") End If End Sub End Class
et voici mon xaml :
Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part 
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
L'appel du Load et Delete sont faits dans xaml.vb
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
Je ne comprend absolument pas ce qui cloche : la listbox est correctement remplie au démarrage, je passe bien dans les OnPropertyChanged, mais aucune modification de la View
Si quelqu'un a une idée ??
Merci !!
Stéphane.

 

 
		
		 
         
 

 
			
			

 
   


 MVVM ListBox ItemSource Binding
 MVVM ListBox ItemSource Binding
				 Répondre avec citation
  Répondre avec citation
Partager