무효 클릭 IP 추적 중...
c#/wpf

[c# wpf] 데이터바인딩에서 mode 사용법

꼬예 2022. 5. 30.
[c# wpf] 데이터바인딩에서 mode 사용법
반응형

이전 포스팅에서 데이터바인딩이란 기본적으로 Source에서 특정값을 입력하고, 그 값이 Target으로 출력된다라는걸 배웠습니다. 

 

하지만,

꼭 그렇지는 않습니다.

이게 무슨 말이냐구요?

 

 

1) Mode의 기본 개념

아래와 같이 간단한 바인딩을 이용한 ui를 만들어 보았습니다.

 

[c# wpf] 데이터바인딩에서 mode 사용법 - 1) Mode의 기본 개념

 

당연히 txt2Target을 의미하니까 아래와 같이 Source에 값을 입력하고 Target에 나오는 모습이 너무나도 자연스럽죠.

 

[c# wpf] 데이터바인딩에서 mode 사용법 - 1) Mode의 기본 개념

 

하지만 아래와 같이 Target에서 Source로의 방향도 가능합니다. 

 

[c# wpf] 데이터바인딩에서 mode 사용법 - 1) Mode의 기본 개념

 

이게 어떻게 가능할까요?

 

우리가 명시적으로 적진 않았지만 Mode 속성으로 TowWay양방향이 디폴트값으로 설정되어있기 때문입니다.

 

ToWay라는 단어에서 느낄 수 있듯이 Source => TargetTarget=> Source 이 두방향이 다 가능하다는 뜻입니다.

 

이러한 Mode 속성으로는 총 4가지있는데요

 

[c# wpf] 데이터바인딩에서 mode 사용법 - 1) Mode의 기본 개념

 

간단하게 설명하자면,

1. OneWay = 소스에서 타겟방향으로만 가능

2. ToWay = 소스에서 타겟방향 가능 , 타겟에서 소스방향 가능

3. OneTime = 소스에서 타겟방향,하지만 단 한번만 가능

4. OneWayToSource = 타겟에서 소스 방향만 가능

 

 

 

2) PropertyChanged는 언제 사용할까?

눈치가 빠르신분은 눈치채겠지만, Target에서 Source로 이동하는 부분에서 뭔가 부자연스러움을 느끼셨을겁니다.

 

[c# wpf] 데이터바인딩에서 mode 사용법 - 2) PropertyChanged는 언제 사용할까?

 

왜냐하면 타겟의 변화가 즉각적으로 반영되지 않고, 소스부분을 클릭해야만 했기 때문입니다.

 

그 이유는 UpdateSourceTrigger 속성 값이 디폴트로 LostFocus가 설정 되어 있었기 때문입니다. 

[c# wpf] 데이터바인딩에서 mode 사용법 - 2) PropertyChanged는 언제 사용할까?

 

이 부분을 PropertyChanged로 변경하면 해당값이 바뀌면 즉각적으로 반영이 되는걸 확인 할 수 있습니다. 

[c# wpf] 데이터바인딩에서 mode 사용법 - 2) PropertyChanged는 언제 사용할까?
[c# wpf] 데이터바인딩에서 mode 사용법 - 2) PropertyChanged는 언제 사용할까?

 

UpdateSourceTrigger타겟에서 소스로 데이터를 변경할때 사용되는것이니 헷갈리지 마시기 바랍니다!

반응형
  • 트위터 공유하기
  • 페이스북 공유하기
  • 카카오톡 공유하기
이 컨텐츠가 마음에 드셨다면 커피 한잔(후원) ☕

댓글