본문 바로가기
WPF

WPF DataGrid 샘플 소스

by 개발하는 늑대 2025. 3. 7.
728x90

 

WPF DataGrid 샘플 소스 완벽 가이드

이 포스트에서는 WPF DataGrid를 활용한 샘플 소스를 제공하며, MSSQL 데이터베이스와 연동하는 방법까지 자세히 설명합니다. 초보자도 쉽게 따라 할 수 있도록 XAML과 C# 코드를 단계별로 분석하고, 실무에서 바로 적용 가능한 예제를 준비했습니다.

주요 키워드: WPF, DataGrid, MSSQL, 데이터 바인딩, C#, XAML

1. WPF DataGrid란?

WPF의 DataGrid는 데이터를 표 형태로 표시하고 편집할 수 있는 강력한 컨트롤입니다. 윈폼의 DataGridView와 비슷하지만, WPF는 XAML을 활용한 선언적 UI 설계와 데이터 바인딩으로 더 유연한 커스터마이징을 지원합니다.

  • 특징: 열 정의, 정렬, 편집, 스타일링 가능
  • 용도: 데이터베이스 데이터 표시, 사용자 입력 처리

2. 기본 WPF DataGrid 샘플 소스

먼저 간단한 DataGrid를 만들어 데이터를 표시해 보겠습니다.

XAML 코드 (MainWindow.xaml)

<Window x:Class="WpfDataGridSample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="WPF DataGrid Sample" Height="400" Width="600">
    <Grid>
        <DataGrid x:Name="dataGrid" AutoGenerateColumns="False" Margin="10">
            <DataGrid.Columns>
                <DataGridTextColumn Header="ID" Binding="{Binding Id}" Width="50"/>
                <DataGridTextColumn Header="Name" Binding="{Binding Name}" Width="150"/>
                <DataGridCheckBoxColumn Header="IsActive" Binding="{Binding IsActive}" Width="80"/>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</Window>

C# 코드 (MainWindow.xaml.cs)

using System.Collections.ObjectModel;
using System.Windows;

namespace WpfDataGridSample
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            var people = new ObservableCollection<Person> {
                new Person { Id = 1, Name = "John", IsActive = true },
                new Person { Id = 2, Name = "Jane", IsActive = false }
            };
            dataGrid.ItemsSource = people;
        }
    }

    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public bool IsActive { get; set; }
    }
}

설명: ObservableCollection을 사용해 동적 데이터 변경을 지원하며, Binding으로 속성을 연결합니다.

3. MSSQL 연동하기

DataGrid의 데이터를 MSSQL에 저장하려면 BIT 타입으로 True/False1/0으로 변환해야 합니다.

MSSQL 테이블 생성

CREATE TABLE People (
    Id INT PRIMARY KEY IDENTITY(1,1),
    Name NVARCHAR(100),
    IsActive BIT
);

C# 저장 로직 추가

private void SaveButton_Click(object sender, RoutedEventArgs e)
{
    string connectionString = "Server=localhost\\SQLEXPRESS;Database=TestDB;Trusted_Connection=True;";
    using (SqlConnection conn = new SqlConnection(connectionString))
    {
        conn.Open();
        foreach (var person in (ObservableCollection<Person>)dataGrid.ItemsSource)
        {
            string query = "INSERT INTO People (Name, IsActive) VALUES (@Name, @IsActive)";
            using (SqlCommand cmd = new SqlCommand(query, conn))
            {
                cmd.Parameters.AddWithValue("@Name", person.Name);
                cmd.Parameters.AddWithValue("@IsActive", person.IsActive ? 1 : 0); // bool -> BIT
                cmd.ExecuteNonQuery();
            }
        }
    }
    MessageBox.Show("저장 완료!");
}

: SqlClient NuGet 패키지를 설치하세요.

4. DataGrid 스타일링과 확장

DataGrid를 더 멋지게 꾸며 보세요!

행 스타일링

<DataGrid.Resources>
    <Style TargetType="DataGridRow">
        <Setter Property="Background" Value="LightGray"/>
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
                <Setter Property="Background" Value="LightBlue"/>
            </Trigger>
        </Style.Triggers>
    </Style>
</DataGrid.Resources>

선택된 행을 강조하고 배경색을 변경합니다.

5. 결론

이 가이드에서는 WPF DataGrid의 기본 사용법부터 MSSQL 연동까지 다뤘습니다. XAML로 UI를 설계하고, C#으로 로직을 작성하며, BIT 타입으로 boolean 값을 처리하는 방법을 배웠습니다. 이 소스를 활용해 여러분의 프로젝트에 적용해 보세요!

궁금한 점이 있다면 댓글로 남겨주세요!

728x90