1

にバインドされた、とにProbationComboBoxバインドされたがあります。SelectedValueRegistrationBindingSourceDisplayMemberProbationBindingSource

を呼び出すRegistrationBindingSource.ResetCurrentItem()と、SelectedValueプロパティはからの正しい値で更新されますRegistrationBindingSource.ProbationID()が、Textプロパティは更新されません。

ComboBoxでデータバインディングを設定する方法は次のとおりです。

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

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

バインディングの問題を理解できるまで、これを一時的な修正として使用しました。

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

何か案は?ありがとう!

4

2 に答える 2

1

問題は へのデータ バインディングではなくRegistrationBindingSource、データとプロシージャにありました。何が起こっていたかは次のとおりです。

  1. レコードをロードする前に、Textすべてのコントロールのプロパティをクリアします。ComboBox

  2. ProbationBindingSource.Currentデータバインディングまたは手動でProbationComboBox.SelectedValueプロパティを設定することによって更新されました。

  3. ほとんどの場合、生徒は保護観察中ではなく、 の値はProbationBindingSource.Current以前と同じ値で更新されました。その結果、ProbationBindingSource.Position変更Textされず、プロパティは更新されませんでした。

私の最終的な解決策は、プロパティSelectedValueをクリアする前に、特定のものが更新されるかどうかを確認しTextます。

于 2010-03-17T19:21:53.853 に答える
1

ResetBindings を呼び出すとどうなりますか?

ヘルプ ファイルには、これを行うと「BindingSource にバインドされたコントロールがリスト内のすべての項目を再読み取りし、表示されている値を更新する」と記載されています。

于 2010-03-16T19:09:37.210 に答える