J'ai une application qui montre certains ListBox. Ces ListBox sont liés à des données. Une des listes est une liste de portes, tandis que l'autre liste est une liste d'utilisateurs.Données liées dans WPF ne pas mettre à jour
La liste des portes provient d'une classe DataManager qui communique avec la base de données. La liste des utilisateurs provient d'une autre classe qui effectue des calculs.
J'ai lié les deux ListBox à leur setter getter observableList approprié.
Pour la porte:
public ObservableList<Door> Doors
{
get { return DataManager.Doors; }
}
et pour l'utilisateur:
public ObservableList<User> Users
{
get { return classLogic._users; }
}
vient ici le problème. Lorsque j'ajoute ou supprime une porte, la liste de l'interface utilisateur est mise à jour. Lorsque j'ajoute ou supprime un utilisateur, la liste n'est pas mise à jour. Je dois recharger l'affichage (redémarrer l'application) pour le mettre à jour. Qu'est-ce que je rate? Pourquoi ça ne marche pas?
bien, je me demande dans quelle situation est l'événement PropertyChanged nécessaire sur une propriété de collection je rappelle des situations où il était nécessaire. –
Mes pensées exactement. Peut-être quand la liste n'est pas observable depuis le début? Je pense aux applications externes ou à la mise à jour de quelque chose qui n'est pas une liste mais, par exemple, une image ... – Joetjah
Il existe une différence entre changer ObservableCollection lorsque vous mettez à jour la liste et modifier les éléments stockés dans la collection. Si les éléments de la collection sont modifiés, INotifyPropertyChanged peut être utilisé. De: http://stackoverflow.com/questions/9469056/refreshing-ui-after-update-to-a-listbox-bound-collection – Joetjah