1. 데이터 바인딩이란?
- 데이터 바인딩은 데이터의 추출, 표현과 관리를 용이하게 하는 기능
- 데이터 바인딩을 사용하지 않으면 모든 기능(추출,표현,관리)을 하드 코딩해야 함
2. OneWay 방법
- 아래의 텍스트 박스 2개를 넣고, 위의 텍스트 박스를 바인딩을 하게 되면 위의 텍스트 박스의 데이터를 가져올 수 있다.
- 위의 텍스트 박스를 바꾸면 아래의 텍스트 박스도 바뀜
- 하지만, default가 OneWay 방법이라 위의 텍스트를 바꿀 때만 변경가능(아래의 텍스트를 바꾸면 변경이 안된다.)
<Window x:Class="WpfApp5.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp5"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<StackPanel>
<TextBox x:Name="txtbox"
Text="this is a textbox"/>
<TextBox Text="{Binding ElementName=txtbox,
Path=Text"/>
</StackPanel>
</Window>
3. TwoWay 방법
- TwoWay방법은 아래의 텍스트를 바꾸면 같이 변경이 된다.
<Window x:Class="WpfApp5.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp5"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<StackPanel>
<TextBox x:Name="txtbox"
Text="this is a textbox"/>
<TextBox Text="{Binding ElementName=txtbox,
Path=Text,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>
</Window>
4. 바인딩 모드
One Way : 소스 데이터가 변경되면 타겟이 업데이트
Two Way : 소스 또는 타겟 데이터가 변경되면 다른 한쪽이 업데이트
OneTime : 소스 데이터를 타겟에 반영 후 업데이트 하지 않음
'Language > C# WPF Programming' 카테고리의 다른 글
C# WPF 프로그래밍 WrapPanel 구현하기 (0) | 2019.05.30 |
---|---|
C# WPF 프로그래밍 데이터 컨텍스트(Data Context) 정의 및 예제 구현하기 (0) | 2019.05.28 |
C# WPF 프로그래밍 데이터 바인딩 예제 (0) | 2019.05.27 |
C# WPF 프로그래밍 데이터베이스(DB) 생성 및 연동하기 (0) | 2019.05.25 |
C# WPF 프로그래밍 계산기(Calculator) 프로그램 만들기 - 연산자 다중 계산 (2) | 2019.05.20 |
C# WPF 프로그래밍 Dependency Property 다루기 (1) | 2019.05.19 |
C# WPF 프로그래밍 Basic Property 다루기 (0) | 2019.05.14 |
C# WPF 프로그래밍 속성(Property) 다루기 (0) | 2019.05.13 |
최근댓글