2010-06-03 6 views
0

자식 개체가있는 개체가 있고 linq을 사용하여 개체를로드합니다. 그리고 그것을 treeView의 itemssource에 할당합니다.wpf treeview가 자식 개체를 표시하지 않습니다.

treeView.DisplayMemberPath = "Name"; 
treeView.ItemsSource = tasks; 

부모 노드 (task.name) 만 표시되므로 자녀 (TaskItems.name)를 추가하는 방법을 알 수 없습니다. 모든 예제는 xaml에서 HierarchicalData를 보여줍니다. 위 코드와 마찬가지로 코드 숨김으로 처리해야합니다. 가능한가?


public class Task 
{ 
     public int Id; 
     public string Name; 
     public bool IsActive; 

     public List<TaskItem> TaskItems = new List<TaskItem>(); 
} 

public class TaskItem 
{ 
     public int TaskId; 
     public string Name; 
     public string Value; 
} 

-------------- 

var tasks1 = from t in xd.Descendants("taskheader") 
      select new Task 
      { 
       Id = (int)t.Element("id"), 
       Name = t.Element("name").Value, 
       IsActive = t.Element("isactive").Value == "1", 
       TaskItems = t.Elements("taskdetail").Select(e => new TaskItem 
       { 
        TaskId = (int)e.Element("taskid"), 
        Name = (string)e.Element("name"), 
        Value = (string)e.Element("value"), 
       }).ToList() 
      }; 

-------------- 
List<Task> tasks = new List<Task>(); 
tasks = tasks1; 

답변

0

당신은 코드에서 HierarchicalDataTemplate을 만들 수 있으며이 treeView.ItemTemplate 속성에 할당합니다. 이것이 바로 "올바른"WPF 방식뿐만 아니라 이것에 관한 최선의 방법입니다.

관련 문제