반응형
상위 노드가 체크된 경우 하위 노드들이 모두 일괄 체크되거나,
반대로 상위 노드가 체크 해제된 경우 하위 노드들이 모두 일괄 체크 해제되는 코드를 만들어보았다.
우선, TreeView에서 AfterCheck 이벤트 발생 시 동작하도록 설정하였다.
아래 코드를 보면 node의 Nodes를 확인(자식 노드)하여 체크 상태를 따라가도록 설정하는 것이다.
1
2
3
4
5
6
7
8
9
10
11
12
|
private void tv_AfterCheck(object sender, TreeViewEventArgs e)
{
// 상위 노드 체크/언체크시 하위 노드도 함께 체크/언체크 되도록 설정
var action = e.Action;
var node = e.Node;
var children = node.Nodes;
for (int k = 0; k < children.Count; k++)
{
children[k].Checked = node.Checked;
}
}
|
cs |
생각보다 복잡하진 않아서 빠르게 구현할 수 있었다.
보완해야할 점은 체크/언체크를 빠르게 연속적으로 클릭할 경우, 연산이 따라가지 못하는지 체크 상태가 연동되지 못하는 것이다. (너무 빠르게 클릭하는것이 아니라면 문제되지 않음)
반응형
'프로그래밍 언어 > WPF' 카테고리의 다른 글
[C#] WPF - UI의 모든 컨트롤 가져오기 (0) | 2024.01.05 |
---|---|
[C#] WPF - 토글 스위치(Toggle Switch) 생성 (2) | 2023.12.26 |
[C#] WPF - 특정 프로세스 Focus 여부 판단 방법 (0) | 2023.01.09 |
[C#] WPF - DataGrid의 ForeColor 변경 시 에러 방지 (2) | 2022.10.26 |
[C#] Form에서 다른 Form으로 데이터 전송하는 방법 (0) | 2022.10.25 |
댓글