내 문제는 다음과 같습니다. 동적 범주가있는 트리가 있습니다 (각 카테고리는 하위 카테고리와 항목을 가질 수 있습니다).HierarchicalDataTemplate - 생성시 특정 유형 무시
이제 TreeView에 범주가 올바르게 표시되도록 HierarchicalDataTemplate을 추가했습니다. 하지만 템플릿 (잘못된 유형)을 적용하지 않고 '시체'로 트리에 표시되는 빈 항목이 많습니다.
어떻게 생성 프로세스에서 금지 할 수 있습니까? 이것은 추상적 인 트리이기 때문에 범주와 동일한 기본 클래스를 사용합니다. 트리가 항상 범주, 항목 또는 둘 다를 포함하는 "분기"속성을 검색하기 때문에 트리에 들어갑니다.
아이디어가 있으십니까? 나는 TreeView의 어떤 사건도 발견하지 못했을 것이다. 아마도 TreeView를 생성하는 동안 다양한 항목을 건너 뛰거나 템플리트의 옵션/특성을 무시할 기회를 제공 할 것이다.
자세한 설명 : 일반 Tree 클래스가 있습니다. 이 클래스는 "A_TreeLeaf"(abstract) 유형의 분기를가집니다. 트리의 제네릭 형식은 물론 A_TreeLeaf를 상속해야합니다. 내 데이터는 범주 (CategoryTreeLeaf) 및 데이터 (DataTreeLeaf)로 구성됩니다. 물론 각 리프에는 하위 엽 (가지)가있을 수 있습니다.
이제 데이터베이스에서 데이터를로드하고 트리를 작성합니다. 각 카테고리에는 X 하위 카테고리가 있습니다. 또한 각 카테고리에는 일부 데이터가 포함될 수 있습니다. 이 구조는 카테고리와 데이터의 명확한 계층 적 구조를 가지고 있기 때문에 많은 도움이됩니다. 이렇게하면 사용자에게 시각화해야합니다. 하지만 데이터와 카테고리를 구분하고 싶습니다. TreeView는 HierarchicalDataTemplate에 의한 카테고리 만 표시하고 ListView는 DataTemplate에 의한 Data 만 표시합니다. ListView 제대로 작동하지만 Tree "DataTreeLeaf 인스턴스 인" "시체"- 항목을 보여줍니다.
생성시 DataTreeLeafs를 필터링하거나 TreeView를 표시하지 않도록하고 싶습니다. "해킹되지 않은"솔루션이 있습니까? 정말 필요하지 않으면 트리를 복사하고 데이터 잎을 제거하고 싶지 않습니다. 왜냐하면 이렇게하면 많은 비용이 들기 때문에 실제 트리 나 시각화를 사용하는 코드를 관리해야하기 때문입니다. 가짜 트리 (왜냐하면 나는 그것이 어떻게 든 변화 할 때 자동적으로 업데이트 됨)에 다리를 놓을 필요가 있기 때문이다.
문제를 재현하기위한 샘플 코드와 데이터를 게시하십시오. –
샘플 코드를 게시 할 수 없습니다. 적어도 전체 트리/리프 클래스는 아닙니다. 그러나 자세한 설명이 업데이트됩니다 – SharpShade