2010-03-16 4 views
1

저는 SelectedValueRegistrationBindingSource에 결합되고 DisplayMemberProbationBindingSource에 결합 된 ProbationComboBox을가집니다. DataBinding : SelectedValue가 변경되면 ComboBox.Text가 업데이트되지 않습니까?

내가 RegistrationBindingSource.ResetCurrentItem() 전화

SelectedValue 속성이 RegistrationBindingSource.ProbationID()에서 올바른 값으로 갱신되지만 Text 속성이 업데이트되지 않습니다. I 설치가 콤보 상자에 데이터 바인딩 방법

은 다음과 같습니다

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 

어떤 아이디어? 감사!

답변

1

데이터 바인딩이 문제가 아니며 데이터 및 절차가 RegistrationBindingSource입니다. 여기에 무슨 일이 일어 났는지이다 : 나는 기록로드하기 전에 모든 ComboBox 컨트롤의 Text 속성을 취소 할

  1. .

  2. ProbationBindingSource.Current 데이터 바인딩 또는 수동으로 ProbationComboBox.SelectedValue 속성을 설정하여 업데이트되었습니다.

  3. 대부분의 경우 학생들은 집행 유예 기간이 아니며 ProbationBindingSource.Current 값은 이전과 동일한 값으로 업데이트되었습니다. 따라서 ProbationBindingSource.Position은 변경되지 않고 Text 속성은 업데이트되지 않았습니다. 것입니다 주어진 SelectedValue 경우

내 최종 솔루션 검사는 Text 속성을 지우기 전에 업데이트 할 수 있습니다.

1

ResetBindings를 호출하면 어떨까요?

도움말 파일에서 "BindingSource에 바인딩 된 컨트롤이 목록의 모든 항목을 다시 읽은 다음 표시된 값을 새로 고치도록"한다고 설명합니다.

+0

나는 이것을 시험해 보았다. 행운이 없었다. 필자는 스키마를 다시 읽도록 강제하기 위해 인수를 True로 전달하려고 시도했지만 도움이되지 않았습니다. – Rob