2016-10-07 2 views
1

데이터 바인딩 System.Window.Forms.CheckBox에 문제가 있습니다. 나는 체크 박스를 생성 한 후System.Window.Forms.CheckBox 데이터 바인딩이 적용되지 않습니다.

체크 박스 → 속성을 통해이 BindingSource에의 속성에 대한 값의 매핑 → 데이터 바인딩 → 검사 → BindingSource에 -는 PropertyValue

그때 내가 클릭 할 때의 트리거 얻을 CheckedChanged 이벤트가 확인란. 그러나 클릭시 BindingSource 속성은 업데이트되지 않습니다. 이 때문에 확인란의 값을 가져 오려면 디자인 -> 이름 확인란을 사용해야합니다. 바인딩이 다른 방식으로 수행되어야합니까? 이 방법으로 문자열을 아무 문제없이 매핑 할 수 있지만 어떤 이유로 체크 상자 bool을 매핑하기가 더 어려워 보입니다.

답변

2

데이터 바인딩을 설정할 때 Data Source Update Mode의 기본값은 OnValidation입니다. 즉, 컨트롤 속성의 유효성을 검사 할 때 데이터 소스가 업데이트된다는 의미입니다. 따라서 현재 상태에서 포커스를 다른 컨트롤로 이동하면 데이터 바인딩이 데이터 소스 속성을 업데이트합니다.

컨트롤 속성의 값이 변경 될 때마다 데이터 소스를 업데이트하려면 설정을 OnPropertyChanged으로 변경해야합니다.

당신은 디자이너에게 이런 식으로 사용하여 설정을 변경할 수 있습니다에 (데이터 바인딩)를 확장

  1. 컨트롤과 재산 그리드에서 선택을 클릭 ...에서 (고급)의서식 및 고급 바인딩을여십시오.

  2. 왼쪽 창에서 속성 목록에서 고급 설정을 수행 할 속성을 선택하십시오. 데이터 소스 업데이트 모드 을 선택에서 오른쪽 창에서

  3. 을 OnPropertyChanged를. 사용 가능한 다른 값에 대한 자세한 내용은 DataSourceUpdateMode 문서를 참조하십시오.

관련 문제