본문 바로가기
프로그래밍 속 지혜/WPF

WPF - DataGrid에 DataTable 바인딩(Binding)하기

by 생속지 2016. 4. 14.
반응형

WPF의 DataGrid에 DataTable을 바인딩 하는 방법입니다.

DataTable은 데이터베이스에 쿼리를 수행하여 생성한 것은 아니지만, 쿼리를 실행하여 생성된 DataTable과 유사하게 사용 할 수 있습니다.


1. Window에 DataGrid Control을 넣습니다.



2. DataGrid의 속성(Properties)창에서 Columns 속성의 오른쪽 [...] 버튼을 클릭합니다.


3. DataGrid에 3개(ID, Name, Telphone)의 컬럼을 추가합니다.


4. Window XAML에 추가한 DataGrid에 아래와 같이 ID, NAME, TEL_NO를 바인딩합니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<Window x:Class="DataGridBinding.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
    <Grid>
        <DataGrid AutoGenerateColumns="False" Height="217" HorizontalAlignment="Left" Margin="38,56,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="420">
            <DataGrid.Columns>
                <DataGridTextColumn Header="ID" Binding="{Binding Path=ID}"/>
                <DataGridTextColumn Header="Name" Binding="{Binding Path=NAME}"/>
                <DataGridTextColumn Header="Telephone" Binding="{Binding Path=TEL_NO}"/>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</Window>


5. Window의 Loaded 이벤트를 추가합니다.


6. 추가된 Window Loaded 이벤트에 아래의 코드를 입력 합니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data;

namespace DataGridBinding
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            // DataTable 생성
            DataTable dataTable = new DataTable();

            // 컬럼 생성
            dataTable.Columns.Add("ID", typeof(string));
            dataTable.Columns.Add("NAME", typeof(string));
            dataTable.Columns.Add("TEL_NO", typeof(string));

            // 데이터 생성
            dataTable.Rows.Add(new string[] { "ID-01", "Name 01", "010-0001-0000" });
            dataTable.Rows.Add(new string[] { "ID-02", "Name 02", "010-0002-0000" });
            dataTable.Rows.Add(new string[] { "ID-03", "Name 03", "010-0003-0000" });
            dataTable.Rows.Add(new string[] { "ID-04", "Name 04", "010-0004-0000" });

            // DataTable의 Default View를 바인딩하기
            dataGrid1.ItemsSource = dataTable.DefaultView;
        }
    }
}


※ DataTable의 Column 이름과 DataGrid의 Column의 바인딩은 아래를 참고하세요.


7. 실행 결과입니다.


아래의 동영상을 참고하세요.



반응형

댓글