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
/False
를 1
/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
'WPF' 카테고리의 다른 글
WPF 커스텀 텍스트 박스와 원형 버튼 구현하기 (14) | 2025.03.10 |
---|---|
WPF ComboBox와 MSSQL 연동 완벽 가이드 (8) | 2025.03.07 |
WPF로 간단한 계산기 만들기 (4) | 2025.03.07 |
WPF DataGrid에 데이터 바인딩하기 (7) | 2025.03.06 |
WPF 바인딩 쉽게 이해하기: 텍스트 박스와 버튼 예제 (0) | 2025.03.06 |