12장. WPF DataContext를 이용한 데이터바인딩 실습
- C#/WPF
- 2021. 5. 13. 00:00
12장. WPF DataContext를 이용한 데이터바인딩 실습
참조
목적
- WPF DataContext를 이용한 데이터바인딩 실습을 해봅니다.
예제
- XAML XML에서 데이터바인딩을 위한 소스객체는 Binding의 Source, ElementName 속성을 이용한다.
- 바인딩 소스 객체를 명시하는 또 다른 방법이 있는데 DataContext를 이용하면 된다.
MainWindow.xaml
<Window x:Class="WPF12_Test.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:WPF12_Test"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="400">
<Grid x:Name="Gird1">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0" Text="Name:"/>
<TextBlock Grid.Column="0" Grid.Row="1" Text="City:"/>
<TextBox x:Name="TextBox1" Grid.Column="1"
Grid.Row="0" Text="{Binding Path=Ename}"/>
<TextBox x:Name="TextBox2" Grid.Column="1"
Grid.Row="1" Text="{Binding Path=City}"/>
<Button Grid.Column="1" Grid.Row="2"
Name="button1" Click="button1_Click"
Content="Control To Context"/>
</Grid>
</Window>
MainWindow.xaml.cs
using System.Windows;
namespace WPF12_Test
{
/// <summary>
/// MainWindow.xaml에 대한 상호 작용 논리
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Emp e = new Emp()
{
Ename = "홍길동",
City = "서울"
};
this.DataContext = e;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
Emp emp = this.DataContext as Emp;
System.Console.WriteLine(emp.Ename);
System.Console.WriteLine(emp.City);
}
}
}
Emp.cs
namespace WPF12_Test
{
public class Emp
{
public string Ename
{
get; set;
}
public string City
{
get; set;
}
}
}
실행결과
728x90
'C# > WPF' 카테고리의 다른 글
14장. WPF Command패턴, 데이터바인딩 DataBinding 개요, 실습 (2) | 2021.05.14 |
---|---|
13장. WPF 데이터바인딩 실습, INotifyPropertyChanged, PropertyChanged 이용 (0) | 2021.05.13 |
12장. WPF DataContext를 이용한 데이터바인딩 실습 (0) | 2021.05.08 |
11장. WPF 데이터바인딩 실습 (0) | 2021.05.08 |
10장. WPF 데이터바인딩(DataBinding)이란? (0) | 2021.05.08 |
이 글을 공유하기