보통 일반적인 질문에 StackOverflow에 응답하지 않습니다. 나는 그것을 줄 것이지만, 나는 당신이 할 수있는 것에 대한 개요만을 제공 할 시간이있다.
TreeView를 피하는 것이 제 경험이었습니다. 논리적으로 동작하지 않으며 노드를 검색 할 때 값 비쌉니다.
나는 당신이 ItemTemplate을가 확장기 제어 인 ItemsControl에를 사용하여 원하는 동작을 얻을 수 있다고 생각합니다. ItemsControl은 폴더를 나타내는 개체 모음에 바인딩됩니다.
그런 다음 DataTemplate을확장기의 헤더는 호버 동작을 모방 할 수 있습니다. 머리글은 두 TextBlocks입니다. 하나는 확장자 (예 : "MAILBOXES")를 식별하는 것이고 다른 하나는 "표시"/ "숨기기"레이블입니다.
기본적으로 "연락처보기"와 "숨기기"텍스트가 확장기의 으로 IsExpanded 속성에 부착 된 DataTrigger가 설정 한 TextBlock이있다. IsExpanded이 참일 경우 텍스트를 "숨김"으로 설정하고, 거짓이면 "표시"로 설정하십시오.
다음 각 폴더에있는 항목의 나머지를 위해, 당신은
확장기 내부에
ItemsControl에 또는
옵니다를 넣을 수 있습니다.
ItemsControl 또는
ListBox ItemsSource을 각 폴더의 항목에 바인딩합니다. 그런 다음 해당
ItemTemplate을 사용하여 선택한 항목을 디자인 할 수 있습니다.