[WPF] 공공데이터 포털 API 이용 클라이언트 구현 Part 3

이미지
그룹핑 ListViewItem 그룹핑 할 수 있습니다. 먼저 CheckBox에 Checked 이벤트를 통해 그룹핑을 추가하고 RemoveChecked 이벤트를 통해 그룹핑을 제거 할 수 있도록 CheckBox를 선언 합니다. 1: <!-- Group CheckBox --> 2: <CheckBox Grid.Column="0" 3: Grid.Row="0" 4: Checked="AddGrouping" 5: Unchecked="RemoveGrouping">Group by Name</CheckBox> 그룹 스타일 선언 GroupStyle 속성에 ContainerStyle 속성을 이용해 Style을 지정 합니다. Expander 컨트롤을 이용해 아파트명과 그룹 아이템의 개수를 Expander Header에 표시 하도록 ControlTemlate를 선언 합니다. 1: <!-- Group Style --> 2: <ListView.GroupStyle> 3: <GroupStyle> 4: <GroupStyle.ContainerStyle> 5: <Style TargetType="{x:Type GroupItem}"> 6: <Setter Property="Margin" Value="0,0,0,5" /> 7: <Setter Property="Te...

MSDN WPF 샘플 따라하기 - BusinessLayerValidation

BusinessLayerValidation


이 예제에서는 사용자 지정 개체에서 유효성 검사를 구현 하고 바인딩하는 방법을 보여 줍니다.

바인딩 객체 구현

IDataErrorInfo 인터페이스를 상속하는 Person 객체를 구현 합니다. Age 속성이 0보다 작거나 150보다 클 경우 에러 메시지를 반환합니다.

1:  public class Person : IDataErrorInfo  
2:    {  
3:      public int Age { get; set; }  
4:      public string Error => null;  
5:      public string this[string name]  
6:      {  
7:        get  
8:        {  
9:          string result = null;  
10:          if (name == "Age")  
11:          {  
12:            if (Age < 0 || Age > 150)  
13:            {  
14:              result = "Age must not be less than 0 or greater than 150.";  
15:            }  
16:          }  
17:          return result;  
18:        }  
19:      }  
20:    }  

사용자 지정 개체 유효성 검사 바인딩

TextBox.Text 속성에 Person.Age 속성을 바인딩 하고, ValidatesOnException 속성을 True로 설정 해 사용자에게 예외 관련 알림을 구현하고, DataErrorValidationRule을 이용해 사용자 정의 유효성 검사의 알림을 구현 합니다.

1:  <StackPanel Margin="20">  
2:      <TextBlock>Enter your age:</TextBlock>  
3:      <TextBox Style="{StaticResource TextBoxInError}">  
4:        <TextBox.Text>  
5:          <!-- ValidatesOnExceptions를 True로 설정하면 소스 프로퍼티의 갱신 중에 발생된 예외를 체크합니다. -->  
6:          <!-- 다른 구문은 <Binding.ValidationRules> 섹션 내에 <ExceptionValidationRule />을 추가하는 것입니다. -->  
7:          <Binding Path="Age" Source="{StaticResource Data}"  
8:               ValidatesOnExceptions="True"  
9:               UpdateSourceTrigger="PropertyChanged">  
10:            <Binding.ValidationRules>  
11:              <!-- DataErrorValidationRule은 IDataErrorInfo 개체에서 발생하는 유효성 검사 오류를 확인합니다. -->  
12:              <!-- 또는 바인딩에서 ValidationOnDataErrors = "True"로 설정할 수 있습니다. -->  
13:              <DataErrorValidationRule />  
14:            </Binding.ValidationRules>  
15:          </Binding>  
16:        </TextBox.Text>  
17:      </TextBox>  
18:    </StackPanel>  


댓글

이 블로그의 인기 게시물

[C#] Task 완료 시 다른 Task를 자동으로 수행

[C#] 태스크(Task)가 완료될 때 까지 대기하여 결과를 얻는 방법

[C#] 명시적으로 Task 생성 및 실행