Le code suivant fonctionne comme on peut s'y attendre - MyProperty
sur le modèle est mis à jour lorsque l'utilisateur sélectionne un nouvel élément dans la liste déroulante.
comboBox1.DataBindings.Add("SelectedValue", myModel, "MyProperty", true,
DataSourceUpdateMode.OnPropertyChanged);
La méthode suivante, cependant, ne fonctionne pas de la même manière et la mise à jour du modèle n'est pas déclenchée tant que le curseur de l'entrée ne se déplace pas vers un autre contrôle du formulaire :
comboBox1.DataBindings.Add("SelectedItem", myModel, "MyProperty", true,
DataSourceUpdateMode.OnPropertyChanged);
Quelqu'un sait-il pourquoi ? Je ne sais même pas par où commencer pour en rechercher la cause. Des indications dans la bonne direction pour commencer l'enquête ou une explication franche seraient également appréciées.
Aside pour mes besoins, j'ai fini par me lier aux deux SelectedItem
y SelectedValue
. De cette façon, j'obtiens des mises à jour instantanées du modèle en fonction des modifications de l'interface utilisateur (par l'intermédiaire de la fonction SelectedValue
et les mises à jour de l'interface utilisateur basées sur les modifications du modèle programmatique (par le biais de l'application SelectedItem
de liaison).