안녕하세요.
오늘은 Datagrid 내 전체 Checkbox 선택, 해제하기 에 대해 알아 보겠습니다.
우리는 보통 Datagrid 내 다수의 Row를 선택하기 위해 각 Row 별로 Checkbox를 두어 해당 Row를 선택하는
경우가 종종 있습니다.
물론 Checkbox 전체 선택, 해제 하기는 개발 툴에 따라 구현하기가 아주 쉬울 수도 있습니다.
하지만 C#의 경우 초보자들이 따라 하기에 약간은 힘든 내용이 될 수도 있을 것 같아 제 나름의 Simple한
방법을 정리했으니 해당 기능 구현이 필요한 분들에게 좋은 참조가 되었으면 합니다.
자, 그럼 시작해 볼까요?
1. 먼저 위 기능을 구현하기 위해서 이전에 작성한
C# WPF Datagrid Cell 가져오기 를 보시고 해당 내용을 이해한 후 아래 내용을 보시면 좋겠습니다.
2. Datagrid Cell 가져오기 내용을 이해하셨다면,
xaml 파일 내 Datagrid Checkbox를 아래와 같이 정의하여 주십시오.
<DataGrid x:Name="Datagrid명"
......>
<DataGrid.Columns>
<DataGridCheckBoxColumn Binding="{Binding chk, UpdateSourceTrigger=PropertyChanged}" x:Name="tblchk" CanUserResize="False" Width="auto">
<DataGridCheckBoxColumn.Header>
<CheckBox Name="chkSelectAll" Checked="chkSelectAll_Checked" Unchecked="chkSelectAll_Unchecked"></CheckBox>
</DataGridCheckBoxColumn.Header>
</DataGridCheckBoxColumn>
......
3. 그리고 실제 Checkbox 헤더를 클릭해 전체 Checkbox를 선택, 해제 하는 부분에 아래와 같이 작성해 주시면 됩니다.
(아래 내용 중 CommonStaticMethod는 Datagrid Cell 가져오기에 필요한 함수가 정의된 클래스 입니다. )
private void chkSelectAll_Checked(object sender, RoutedEventArgs e)
{
foreach (DataGridRow row in CommonStaticMethod.GetDataGridRows(Datagrid명))
{
if (row != null)
{
DataGridCell cell = CommonStaticMethod.GetdgCell( Datagrid명, row, 1);
CheckBox ckb = cell.Content as CheckBox;
if (ckb.IsChecked == false)
{
ckb.IsChecked = true;
}
}
}
}
private void chkSelectAll_Unchecked(object sender, RoutedEventArgs e)
{
foreach (DataGridRow row in CommonStaticMethod.GetDataGridRows(Datagrid명 ))
{
if (row != null)
{
DataGridCell cell = CommonStaticMethod.GetdgCell(Datagrid명, row, 15);
CheckBox ckb = cell.Content as CheckBox;
if (ckb.IsChecked == true)
{
ckb.IsChecked = false;
}
}
}
}
어떠세요? 내용이 도움이 되셨나요?
어떻게 보면 복잡하게 느껴질 수도 있는데 천천히 살펴 보시면 어려운 내용은 없습니다.
그러니 잘 활용해 보세요.
그럼, 여러분 모두 언제나 행복하길 기원하겠습니다.
감사합니다. ^^*
그런데 혹시 가슴이 답답해 명상이나 힐링이 필요하시다면?
아래로 들러 주세요~ ^^
https://youtu.be/oRHsThgQdzk?feature=shared
'C#' 카테고리의 다른 글
C# WPF 프로그램 내에서 버튼 이미지 변경 (1) | 2024.07.16 |
---|---|
c# WPF Datagrid csv 파일로 저장하기 (0) | 2024.07.04 |
c# WPF 천 단위 콤마(,) 표시하기 (0) | 2024.07.03 |
C# WPF Datagrid Cell 가져오기 (0) | 2024.07.03 |
C# WPF 전역변수 정의하기 (0) | 2023.05.27 |
댓글