2012-04-16 2 views
0

나는 데이터 입력 폼을 가지고 있으며, DataCountext는 ViewModel 객체에 바인딩되어있다.WPF/XAML - GroupBox의 ValidationRule?

폼에는 (다른 것들 중에서) ViewModel의 부울 값에 각각 바인딩 된 여러 CheckBox 요소가 들어 있습니다. 이러한 CheckBox는 두 개의 GroupBox로 그룹화됩니다.

처리 방법이 두 가지 비즈니스 요구 사항이 있습니다.

  1. 그룹 상자 1에있는 하나 이상의 확인란이 선택되거나 그룹 상자 2에있는 하나 이상의 확인란이 선택됩니다.
  2. 그룹 상자 1에있는 항목이 선택되면 그룹 상자 2의 모든 항목이 선택 취소되고 그 반대의 경우도 마찬가지입니다.

누구나 아이디어가 있습니까?

답변

0

문제 1의 해결 방법은 간단합니다. VM의 속성 설정자가 설정하지 않아야 할 필드를 지우도록합니다. 바인딩은 디스플레이를 적절하게 업데이트합니다.

문제 2에 대한 해결책은 좀 더 복잡합니다. GroupBox 수준에서 오류를 표시하려면 BindingGroup을 GroupBox에 연결하고 적절한 ValidationRule을 추가해야합니다.

0

ViewModel에서 다루는 것과 같은 소리입니다. VM get은 이미 유효한 상태 (무언가가 선택됨) 인 초기 상태입니다. 사용자가 다른 항목을 선택하면 다른 그룹의 속성을 false로 설정하여이를 처리 할 수 ​​있습니다.

+0

ViewModel에 규칙을 위반했는지 확인하는 메서드를 두는 것은 쉽습니다. 하지만 뷰에 표시되는 폼 유효성 검사 동작에이를 묶는 방법을 모르겠습니다. 체크 박스가 선택되어 있지 않으면 GroupBox가 빨간색 테두리로 둘러싸여 있고 Validation.Errors에 적절한 메시지가 표시됩니다. IDataErrorInfo를 가지고 놀면서, 나는 개별 컨트롤 주위에 빨간색 상자를 얻을 수 있었지만 GroupBox 주위를 그리는 방법을 알지 못했습니다. –

관련 문제