Tree View 성능 문제

안녕하세요.

현재 파일 트리를 WPF Tree View로 구현중에 있습니다.
각 노드를 구성하고 노드의 Expand할 때 하위 노드를 수집하는 방식으로 구현했는데요.
Expand시 하위 항목에 대한 수집은 빠르게 진행되어지는데 Tree Expand에 대한 Rendering에서 성능이 좋지 않습니다.

혹시 추천 해주실 만한 방법이 있다면 알려주시면 감사하겠습니다.

참고

Virtualizing도 해보았지만 큰 변화는 없습니다. (How to: Improve the Performance of a TreeView - WPF .NET Framework | Microsoft Learn)

1개의 좋아요

보통 가상화 처리를 하면 화면의 보이는 영역만 렌더링 하기 때문에 성능이 느리진 않는데,

그래도 느리다면 트리뷰 노드 확장시 바인딩과 연관된 코드에 시간이 오래걸리는 작업이 있는지 의심해 볼 필요가 있습니다.

가령 바인딩 속성 get 메서드에 반복적인 오래 걸리는 작업이 호출 된다건가 등 이요.

또 질문자님이 가상화 처리를 하셨다고 하지만 트리뷰의 아이템즈 패널이 기본적인 스택 패널, 버추얼 스택 패널이 아니고 기본 가상화 지원이 안되는 다른 컨트롤을 이용중인건지 체크해 보세요.

가상화 지원이 안되는 컨트롤을 트리뷰 아이템 패널로 사용하시는 거라면 직접 버추얼 패널 및 스크롤바 관련 클래스를 상속 받아서 구현 해주셔야 합니다.

정확한 문제는 직접 재현 되는 샘플 프로젝트를 올려주시는 것이 좋을 것 같습니다.

3개의 좋아요