Zone de liste déroulante n'est pas automatiquement mise à jour lorsque la source de données les modifications?
Pour quelque raison que lors de l'ajout ou de suppression d'éléments de la source de données (un simple BindingList) la zone de liste déroulante des mises à jour en conséquence, mais si j'ai modifier un élément de ce genre, il ne met pas à jour automatiquement:
myBindingList[index].Name = "NewName";
myBindingList[index].Value = newValue;
Pour pouvoir mettre à jour quand j'ai modifier un élément, par opposition à la création ou la suppression d'un objet que j'ai à faire après le changement:
myComboBox.DataSource = null;
myComboBox.DataSource = myBindingList;
Cela résout le problème, mais il semble plutôt compliqué solution. Aussi avec de grandes listes, il peut devenir lent (optimisation prématurée, je sais), mais encore est-il un moyen de forcer la zone de liste déroulante pour mettre à jour sans tout re-affectation de sa source de données?
Merci pour la lecture.
OriginalL'auteur Kyle McClooney | 2011-09-11
Vous devez vous connecter pour publier un commentaire.
ce qui est indiqué dans les forums MSDN:
- vous que vous utilisez BindingList et, en fait, vous obtenez la liste déroulante afin de refléter ajouter ou supprimer des éléments événements. Je pense que vous devriez faire la mise à jour des éléments déjà à l'intérieur de votre BindingList d'une autre manière parce que dirait le bon BindingList les événements ne sont pas de tir.
vous pourriez étudier dans ce ou tout simplement de vivre avec reset et de réaffecter la source de données, je ne pense pas trop mauvais, vous êtes dans Statefull application Windows Forms pas dans SatetLess Webforms de sorte que vous ne avez vos objets tout le temps 🙂
OriginalL'auteur Davide Piras
Vous avez besoin d'observables collections et IPropertyChange mise en œuvre:
Zone de liste déroulante liée à une ObservableCollection ne met pas à jour
OriginalL'auteur Juan Puebla