J'ai un MainViewModel
qui contient une référence à un ObservableCollection
:Reliure à ObservableCollection avec MVVM Lumière
public ObservableCollection<SomeClass> ListOfPeople
{
get
{
return MyClass.BaseCollection;
}
}
BaseCollection
est aussi une instance de ObservableCollection<SomeClass>
. ListOfPeople
est lié à un contrôle ListBox
sur la deuxième page - l'application commence par la première page, lance le processus de téléchargement pour remplir BaseCollection
et passe à la deuxième page pendant que le téléchargement est en cours.
Le problème est que lorsque la liaison se produit, BaseCollection
est nulle et par conséquent le ListBox
n'est pas rempli. Cependant, même lorsque le processus de téléchargement se termine, le ListBox reste vide. Je suppose que cela se produit parce que BaseCollection ne notifie pas l'instance appropriée au sujet des changements existants à la collection, mais je ne suis pas sûr.
BaseCollection
a des éléments à l'intérieur - je l'ai confirmé.
Des suggestions sur comment je peux contourner le problème? Quelqu'un ici se lier à une ObservableCollection via MVVM Light comme je l'ai montré ci-dessus?
En fait travaillé comme un charme - après tout il y avait une nuance MVVM Light là-bas. Merci! –
D'un autre côté, l'utilisateur devra attendre un certain temps jusqu'à ce qu'un élément apparaisse dans le ListBox. Aussi, pourquoi utiliseriez-vous ObservableCollection alors? Même en utilisant une simple liste <> et en faisant RaisePropertyChanged (..) lorsque vous avez terminé le téléchargement, vous ferez la même chose. –
Vous avez sauvé ma journée aujourd'hui! – Signcodeindie