2010-03-16 8 views
1

J'ai un ProbationComboBox avec le SelectedValue lié à un RegistrationBindingSource, et le DisplayMember lié à un ProbationBindingSource.DataBinding: ComboBox.Text ne se met pas à jour lorsque SelectedValue est modifié?

Quand j'appelle RegistrationBindingSource.ResetCurrentItem(), la propriété SelectedValue est actualisée avec la valeur correcte de RegistrationBindingSource.ProbationID(), mais la propriété Text est pas mis à jour.

Voilà comment de liaison de données que je configuration sur la zone de liste déroulante:

ProbationComboBox.DataBindings.Add(New System.Windows.Forms.Binding(_ 
    "SelectedValue", Me.RegistrationBindingSource, "ProbationID", True)) 

ProbationComboBox.DataSource = Me.ProbationBindingSource 
ProbationComboBox.DisplayMember = "probation" 
ProbationComboBox.ValueMember = "id" 

Jusqu'à ce que je peux comprendre le problème avec ma fixation, je l'ai en utilisant cela comme une solution temporaire:

DataRow row = CType(ProbationBindingSource.Current, DataRowView).Row 
ProbationComboBox.Text = CType(row, RootNamespace.DataSet.probationRow).probation 

Des idées? Merci!

Répondre

1

Le problème n'était pas avec la liaison de données au RegistrationBindingSource, mais avec mes données et procédures. Voici ce qui se passait:

  1. J'éclaircirait la propriété Text de tous les contrôles ComboBox avant une charge record.

  2. ProbationBindingSource.Current a été mis à jour, soit par liaison de données, soit en définissant manuellement la propriété ProbationComboBox.SelectedValue.

  3. Dans la plupart des cas, les étudiants n'étaient pas en période de probation et la valeur ProbationBindingSource.Current a été mise à jour avec la même valeur qu'avant. Par conséquent, ProbationBindingSource.Position n'a pas changé et la propriété Text n'a pas été mise à jour.

Mes dernières vérifications de solution si une donnée SelectedValue va être mis à jour avant d'effacer la propriété Text.

1

Pourquoi ne pas appeler ResetBindings?

Les fichiers d'aide indiquent que cela "provoque un contrôle lié à BindingSource pour relire tous les éléments de la liste et actualiser leurs valeurs affichées."

+0

J'ai essayé, sans succès. J'ai même essayé de passer True pour l'argument, de forcer le schéma à être relu, mais cela n'a pas aidé. – Rob

Questions connexes