2014-12-18 2 views
0

Я имею некоторый класс какПреобразование модальности в IHierarchicalEnumerable

public class Employee 
{ 
    public List<Employee> ChildOrg{get; set;} 
    public string name {get; set;}; 
    public string id{get; set;}; 
    public string parentid{get; set;}; 
} 

Сейчас в проекте я имею объект Employee, который содержит фактическую иерархию, чтобы отобразить в TreeView.

Теперь, чтобы передать этот объект TreeView, мне нужно дать ссылку на IHierarchicalEnumarable.

Итак, как я могу преобразовать свой Modal в IHierarchicalEnumrable и передать его TreeView?

Я уже использовал следующую ссылку.

http://www.codeproject.com/Articles/19639/Implementing-IHierarchy-Support-Into-Your-Custom-C

В ссылке выше я специально путаются «GetChildern» и метод «GetParent» Я не могу понять, как это может поместиться в моем требовании, где я уже имеющей иерархию.

Я не могу понять, пожалуйста, помогите мне разобраться, как это работает.

ответ

1

Наконец-то выяснилось, как я могу использовать IHierarchicalEnumerable.

Пожалуйста, ознакомьтесь с нижеследующим. Модифицированный мой класс модели, как это:

public class Employee : IHierarchyData 
{ 
    public EmployeeCollection ChildOrg { get; set; } 
    public string name { get; set; } 
    public string id { get; set; } 

    public IHierarchicalEnumerable GetChildren() 
    { 
     return ChildOrg as IHierarchicalEnumerable; 
    } 

    public System.Web.UI.IHierarchyData GetParent() 
    { 
     return null; 
    } 

    public bool HasChildren 
    { 
     get { return ((this.ChildOrg != null) && (this.ChildOrg.Count > 0)); } 
    } 

    public object Item 
    { 
     get { return this; } 
    } 

    public string Path 
    { 
     get { return this.id; } 
    } 

    public string Type 
    { 
     get { return this.GetType().ToString(); } 
    } 
} 

Добавлен новый класс следующим образом:

public class EmployeeCollection : List<Employee>, IHierarchicalEnumerable 
{ 
    public IHierarchyData GetHierarchyData(object enumeratedItem) 
    { 
     return enumeratedItem as IHierarchyData; 
    } 
} 

И используется рекурсивная функция для создания иерархии.

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