낭만 프로그래머
[WPF] TextBox에서 포커스를 잃지 않으면 바인딩 업데이트가 되지 않는 문제 해결 본문
WPF에서 바인딩 로직을 작성했는데도 불구하고 바인딩 업데이트가 되지 않는 문제가 발생하였다. 확인해 본 결과 TextBox에서 포커스를 잃었을 경우에만 업데이트가 되었다.
구글을 검색해 보니 TextBox 바인딩 업데이트에 대한 옵션을 넣을 수가 있었다.
1. TextBox 값이 변경되는 즉시 업데이트
- UpdateSourceTrigger="PropertyChanged" 를 사용
<TextBox x:Name="height" Grid.Row="5" Grid.Column="1" Width="150" HorizontalAlignment="Left" Margin="5" TextWrapping="Wrap" VerticalAlignment="Center" >
<TextBox.Text>
<Binding Path="Model.height" Mode="TwoWay"
UpdateSourceTrigger="PropertyChanged"/>
</TextBox.Text>
</TextBox>
2. 사용자가 업데이트를 수동으로 원할 경우
- UpdateSourceTrigger="Explicit" 를 사용
// 코드에서 수동으로 업데이트 메소드 호출
// itemNameTextBox is an instance of a TextBox
BindingExpression be = itemNameTextBox.GetBindingExpression(TextBox.TextProperty);
be.UpdateSource();
'C#' 카테고리의 다른 글
C#에서 CSV 파일 읽기 (0) | 2020.09.12 |
---|