[C#/WPF] TextBox.Text 에 Binding된 속성이 즉시 업데이트되지 않는 경우
포커스를 잃을 때만 업데이트되는 TextBox.Text Binding 방금 TextBox.Text에 따라 WebBrowser.NavigateToString()을 호출하려 하는 중, 괜히 Binding을 쓰고 싶어서 TextBox.Text에 Binding Html을 걸어놓고 디버그를 해보니 텍스트가 입력될 때가 아니라, 텍스트박스의 포커스를 잃을 때 Html 프로퍼티가 업데이트되는 현상 을 발견했습니다. 제 목적은 실시간으로 WebBrowser에 TextBox에 입력된 HTML을 렌더링하는 작업이기 때문에 매우 곤란한 상황이죠. 하지만 언제나 그렇듯, 답은 매우 간단했습니다. Binding.UpdateSourceTrigger 프로퍼티 Binding 클래스에는 UpdateSourceTrigger 라는 프로퍼티가 있습니다. 이름에서 알 수 있듯, 언제 원본의 값을 업데이트할지 결정하는 녀석이죠. 기본값은 Default이며 Default는 Binding이 적용될 DependencyProperty를 만들 때 설정한 기본값 으로 동작합니다. Binding.UpdateSourceTrigger 프로퍼티에 들어갈 수 있는 값은 UpdateSourceTrigger 열거형 의 값들인데요, 아래와 같습니다. public enum UpdateSourceTrigger { Default, PropertyChanged, LostFocus, Explicit, } Default 는 위에서 말씀드렸듯, DependencyProperty를 만들 때 설정한 기본값입니다. PropertyChanged 는 해당 DependencyProperty에 변경이 생길 때 원본을 업데이트합니다. LostFocus 는 DependencyProperty를 지닌 컨트롤이 포커스를 잃을 때 원본을 업데이트합니다. Explicit 은 원본을 업데이트하기 위해 BindingExpression.UpdateSour