2012-06-27 5 views
0

다음과 같은 시나리오가 발생합니다.WPF의 요소 숨기기 TreeView

TreeView에 표시 할 계층 구조 요소가있는 ViewModel이 있습니다. 여태까지는 그런대로 잘됐다. 내가 지금하고 싶은 것은 IsConfigurable 같은 ViewModel-Element에 설정된 일부 속성에 따라 TreeView에서 요소를 숨기거나 제거하는 것입니다. DataTemplate을 사용하지 않도록 설정하면 요소가 제거되지만 원하는 모든 하위 요소도 삭제됩니다.

그게 가능합니까?

다소 이상한 소리를 접견,

위르겐

+2

부모 노드는 제거하고 하위 노드는 제거 하시겠습니까? 그러나 아이들은 무엇에 묶일 것입니까? – Zabavsky

+0

부모 노드의 'Header'를 숨기고 자식 노드를 동일한 빈 노드 아래에 유지 하시겠습니까? –

+0

나는 노드를 '숨기고'hierachie의 다음 상위 노드에 하위 노드를 연결하고 싶습니다. 컬렉션 자체에 간섭하지 않고 ... 내가 말했듯이, 그것이 가능할 지 모르겠습니다. – opiswahn

답변

0

하지만, 그럼에도 불구하고 ...

당신은 응용 프로그램 테스트 및 디버깅을 유지해야한다는 것을 고려해야한다.
모델에 원본 데이터 (컬렉션)가 그대로 있습니다. 여기에는 간섭이 없습니다. 바인딩하려는 객체 인 ViewModel에서 계층을 표시 할 때 변환을 계산할 수 있습니다. 이 접근법은 변환을 "쉽게"테스트/디버깅 할 수 있다는 이점이 있습니다. 이제 불분명 한 실험없이 계산 된 계층 구조에 TreeView를 바인딩하십시오. ViewModel의 속성 (IsConfigurable 또는 기타 사항을 언급 했음)이 바뀌면 바운드 계층을 다시 계산할시기를 알 수 있습니다.