2014-01-07 3 views
0

У меня есть WPF TreeView, связанный со списком объектов с несколькими списками в каждом из них.Два списка как дети в WPF TreeView

public List<OwnerClass> OwnerClasses {get; set;} 

public class OwnerClass 
{ 
    public List<SomeObject> SomeObjects { get; set; } 
    public List<OtherObject> OtherObjects { get; set; } 
} 

Я ищу, чтобы найти способ отображения обоих списков как детей родителя.

Как это:

> Owner1 
    | 
    + SomeObject 1 
    + SomeObject 2 
    + SomeObject 3 
    + OtherObject 1 
    + OtherObject 2 
    + OtherObject 3 
    + OtherObject 4 

> Owner2 
    | 
    + SomeObject 1 
    + SomeObject 2 
    + SomeObject 3 
    + OtherObject 1 
    + OtherObject 2 
    + OtherObject 3 
    + OtherObject 4 

Я хочу TreeView функциональность,, но я хочу сторону ребенка списки бок. (И каждый из них, как дерево, потому что у них в свою очередь есть списки.)

Возможно ли это?

+2

Создайте надлежащую ViewModel. Преобразуйте данные в любом формате, который у вас есть, к тому, что можно использовать в «HierarchicalDataTemplate». –

ответ

0

Вы могли бы сделать свойство, что «присоединяется» два списка в один:

public class OwnerClass 
{ 
    public List<SomeObject> SomeObjects { get; set; } 
    public List<OtherObject> OtherObjects { get; set; } 
    public object AllObjects 
    { 
     get 
     { 
      List<object> list = SomeObjects; 
      list.AddRange(OtherObjects); 
      return list; 
     } 
    } 
} 
0

Вам нужны две вещи действительно сделать это легко. Первая была хорошо продемонстрирована @DLeh, хотя я рекомендую использовать класс ObservableCollection<T>, а не класс List<T> при использовании WPF.

Вторая вещь, которая вам нужна, это HierarchicalDataTemplate. Это как обычная DataTemplate, но это позволяет установить источник для дочерних узлов:

<HierarchicalDataTemplate DataType="{x:Type YourXmlNamespacePrefix:OwnerClass}" 
    ItemsSource="{Binding AllObjects}"> 
    <TextBlock Text="{Binding SomePropertyFromObject}"/> 
</HierarchicalDataTemplate> 

Вы можете узнать больше из HierarchicalDataTemplate Class страницы на сайте MSDN.

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