Binding

About Binding

Posted by Damin on August 30, 2019

Binding 클래스의 UpdateSourceTrigger

Text,Content 등등 Source가 바뀌게 될때, 언제 Binding Target이 바뀌는지.

1. UpdateSourceTrigger = PropertyChanged

이 PropertyChanged는 바인딩 대상 속성이 변경될 때마다 바인딩 소스를 즉시 업데이트 해 줍니다.

만약 TextBox에 123을 입력하면, 1 -> 12 -> 123 이런식으로 타자를 칠 때마다 바뀐다는 뜻 입니다 ㅎ

2. UpdateSourceTrigger = LostFocus

이 LostFocus는 말 그대로 Focus를 잃었을때 바인딩 소스가 업데이트 됩니다.

TextBox에 123을 입력 후, 다른 Button, 다른 TextBox 클릭하는 순간!! 바뀐다는 뜻 입니다 ㅎ

3. UpdateSourceTrigger = Explicit

이 Explicit는 UpdateSource 메서드를 호출할 때만 바인딩 소스를 업데이트 해줍니다 ㅎ

BindingExpression be = textBox1.GetBindingExpression(TextBox,TextProperty);
be.UpdateSource(); 이런 식입니다 ㅎ

저도 아직 한번도 안써봐서 Explicit는 자세히 잘 모르겠습니다 ㅠ

4. Default

그냥 바인딩을 하면, 대부분의 경우는 PropertyChanged로 되지만, Text의 경우는 LostFocus 입니다.

저는 개인적으로 LostFocus를 선호하는 편 입니다. 왜냐하면 PropertyChanged는 시간이 LostFocus보다는 많이 걸리기 때문입니다.

이상으로 소소한 팁 마치겠습니다. 읽어주셔서 감사합니다 ㅎ