2010-06-03 2 views
0

У меня есть объект с дочерним объектом (-ами), и я загружаю его с помощью linq. И я назначаю его элементу items TreeView.wpf treeview не показывает дочерние объекты

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

Это показывает только родительские узлы (task.name), я не мог понять, как добавить детей (TaskItems.name). Все примеры показывают иерархические данные в xaml. Мне нужно сделать это в коде, как и в приведенном выше коде. Является ли это возможным?


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.

Смежные вопросы