본문 바로가기

카테고리 없음

[C#] Textbox 의 Text 항목에 Binding 한 경우 UpdateSourceTrigger 의 한글 적용 시점

TextBox 의 Text 속성에 Binding 을 걸고 UpdateSourceTrigger 옵션을 사용하는 경우

 

적용시점의 차이에 유의해야 합니다.

 

UpdateSourceTrigger 에는 3가지의 설정값이 있는데 그중

 

Default 는 LostFocus 가 일어나면 발생하는 것이고,

 

PropertyChanged 는 변경이되면 발생하는 것이며,

 

Explicit 는 명시적으로 지정하는 경우에만 소스를 업데이트하는 것입니다.

 

하지만 PropertyChanged 를 설정하는 경우 MSDN 에서 설명하는 것과 달리 한글의 경우 바로 적용되지 않습니다.

 

가령 "한글" 을 입력한다고 치면 두번째단어인 "글"에 포커스가 잡혀있는데

 

이 상태로 버튼의 클릭등을 이용해 Text 값이 Binding 되어 있는 값을 확인하면 "한" 만 적용되어 있습니다.

 

이 경우 명시적으로 소스를 업데이트 시키면 바로 적용됩니다. (BindingExpression 을 이용하면 됩니다.)

 

(TextChanged 이벤트의 값을 이용하면 위와 같은 문제없이 사용하실 수 있습니다.)