WPF 인터페이스 개발 : 다른 컬렉션의 항목을 동일한 부모 노드의 자식으로 표시하는 방법

최신 Control-Gantt 차트 인 DevExpress v20.1을 시작하는 방법을 가르치는 40 분, 지금 등록 >>

DevExpress v20.1 정식 버전 다운로드 DevExpress v20.1 중국어 리소스 획득    

함께 DevExpress의 WPF 컨트롤 , 당신은 현대 고객의 요구에 초점을 강력한 대화 형 기능을 가진 XAML 기반 응용 프로그램을 만들 수 있습니다와 미래의 터치 지원 솔루션의 새로운 세대를 구축 할 수 있습니다.

시스템 배경

  • 플랫폼 : WPF
  • 제품 : WPF 용 DXTreeList
  • 프레임 워크 : .NET Framework 빌드 20.1.4
  • 운영 체제 : Windows 10 x64
  • IDE : Microsoft Visual Studio 2019

발생한 문제

TreeListView를 사용하여 구조화 된 데이터를 표시하는 솔루션을 얻을 때 IChildNodesSelector를 사용하여 트리를 만듭니다. 제대로 작동 할 때 모델이 있으며 각 레벨에는 여러 SubType이있을 수 있으며 ClassA에는 List ClassB 및 List ClassC 멤버가 있습니다. 모든 예제는 가능한 하위 유형을 하나만 언급하는 것으로 나타 났으며, 디스플레이는 모든 클래스가 해당 클래스의 해당 속성에 매핑되는 인터페이스를 구현합니다.

공용 인터페이스 ITreeBaseItem 
{ 
string ObjectType {get; } 
string 요소 {get; } 
문자열 제목 {get; } 
string Detail1 {get; } 
string Detail2 {get; } 
string Detail3 {get; } 
}

여기에서 발췌 한 내용입니다.

public class CustomChildrenSelector : IChildNodesSelector { 
public IEnumerable SelectChildren (object item) { 
if (item is ProjectStage) 
return ((ProjectStage) item) .Tasks; 
else if (항목이 ProjectObject입니다) 
return ((ProjectObject) item) .Stages; 
null을 반환합니다. 
} 
}

문제는 ProjectStage 클래스에 작업뿐만 아니라 다른 하위 유형, 즉 목표가있는 경우 어떻게됩니까? IChildNodesSelector를 사용하여이 작업을 수행 할 수 있습니까? 아니면 다른 전략을 계속해야합니까?

해결책:

기술적으로 이러한 컬렉션을 선택기로 병합하고 결과를 반환 할 수 있습니다. 아래에 설명 된 메서드를 참조 할 수 있습니다. 방법 : 자식 노드 선택기를 통해 계층 적 데이터 바인딩 구현 . 또한 여러 유형의 누락 된 속성 편집을 비활성화하고 CellTemplateSelector를 사용하여이 메서드를 구현해야합니다.


DevExpress Technical Exchange Group 2 : 775869749 그룹 토론에 오신 것을 환영합니다.

Huidu 고급 UI 인터페이스 개발

추천

출처blog.csdn.net/AABBbaby/article/details/108355919