Item de combobox invisible

Résolu
cs_ano2 Messages postés 5 Date d'inscription jeudi 25 mars 2010 Statut Membre Dernière intervention 29 décembre 2010 - 26 août 2010 à 15:51
cs_ano2 Messages postés 5 Date d'inscription jeudi 25 mars 2010 Statut Membre Dernière intervention 29 décembre 2010 - 26 août 2010 à 18:33
Bonjour à tous,

Depuis quelques jours, j'essaie de me mettre à WPF.
Pour commencer, j'essaie de lier une liste (qui est définie et alimentée dans le code VB.NET) avec un contrôle (un combobox).

Pendant le chargement de la fenetre, je définie le binding entre le combobox et la liste :

   
    Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
        _Explorateur = New CLASS_ExplorateurCategories()
        Dim binding As Binding = New Binding()
        binding.Source = _Explorateur.listeCategories
        ComboBox1.SetBinding(DataContextProperty, binding)
        _Explorateur.remplirListe()
    End Sub


(En fait c'est la classe CLASS_ExplorateurCategories qui contient la liste. Et c'est grace à la méthode remplirListe que ma liste est alimentée)

    Public Sub remplirListe()
        _lstCategories.Add(New CLASS_Categorie(0, "test" & compteur))
        OnPropertyChanged("listeCategories")
    End Sub


Jusque la tout va bien et mon code fait bien ce que je veux. Les Categories sont affichées dans le combobox.

Cependant quand je fais de nouveau appel à la méthode remplirListe (grace à un bouton de la fenetre), mon combobox n'affiche pas les nouveaux éléments. Pourtant, il les contient bel et bien puisque si je me met sur le dernier élément (visible) de la combobox et que je descend avec la fleche du clavier, les éléments ajoutés qui n'apparaissent pas sont tout de même présent... (et on peut les voir dans les variables locales lors du débogage)

Je ne sais pas si je me suis bien exprimé, mais je peux envoyer le source si vous le voulez.

Savez vous d'où peut venir l'erreur?

Merci à vous. (j'espère avoir posté dans le bon forum au moins)

1 réponse

cs_ano2 Messages postés 5 Date d'inscription jeudi 25 mars 2010 Statut Membre Dernière intervention 29 décembre 2010
26 août 2010 à 18:33
Au temps pour moi, j'ai trouvé l'erreur.

Ma liste était déclarée en tant que List(Of...) et apparemment avec une instance de cette liste ça ne met pas à jour l'interface graphique.

J'utilise maintenant les ObservableCollection(Of...) et le travail se fait comme prévu.

Par contre je ne comprends pas vraiment pourquoi...
3
Rejoignez-nous