2011-08-04 4 views
2

WPF 컨트롤에 대한 상속 차트를 보면 TreeView 컨트롤에 대한 예기치 않은 문제가 있음을 알 수 있습니다. 사용자 선택을 허용하는 다른 컨트롤은 Selector 또는 MultiSelector 기본 클래스에서 상속받습니다. Selector 클래스는 기본 ItemsControl 클래스에 선택 기능을 추가하므로 의미가 있습니다. 그래서 TreeView 마찬가지로 같은 클래스에서 상속 할 것으로 예상했다,하지만 그것은 않습니다. 그것은 ItemsControl에서 직접 상속됩니다. 어떤 아이디어?WPF TreeView 컨트롤이 Selector 대신 ItemsControl에서 상속되는 이유는 무엇입니까?

답변

4

트리 항목의 선택은 루트 수준 항목뿐만 아니라 전체 계층 구조를 따라 관리해야하기 때문입니다. Selector 클래스는 플랫 목록을 추적합니다. 사실은 계층 구조가 특정 방식으로 처리되어야한다는 것입니다.

+0

글쎄, 내가 문제를 볼 수있는 선택기는 선택한 항목을 쿼리하는 속성을 추가하고, TreeView에서 선택한 항목을 가질 것입니다. –

+0

@SoMoS : 당신의 요지를 잘 모르겠습니다. 항목이 IsSelected 속성에 따라 스타일이 지정되어야하는 기본 TreeView 응용 프로그램을 고려하십시오. 이제 Selector가 루트 수준에서 구현 된 경우 템플릿 계층 구조를 따라 속성을 매핑하는 방법은 무엇입니까? –

관련 문제