Я только что сделал что-то похожее на это. К сожалению, вы не можете сделать это напрямую, поскольку TreeViewItem принимает только одну коллекцию для своего ItemsSource.
Я создал модель, которая отображает содержимое в соответствии с требованиями TreeView.
public class MyObjectWrapper
{
public MyObject Target {get;set;}
public IEnumerable MyLists
{
get
{
yield return Target.List1;
yield return Target.List2;
}
}
}
, где MyObject определен как:
public class MyObject
{
public List1CollectionType List1 {get;private set;}
public List2CollectionType List2 {get;private set;}
}
Тогда ваши привязки
- TreeViewItem: MyObjectWrapper
- ItemsSource: MyLists
- TreeViewItem: List1CollectionType
- ItemsSource: {Binding} (привязывается непосредственно к текстовому тексту)
- TreeViewItem: List2CollectionType
Вам понадобится DataTemplate для MyObjectWrapper, List1CollectionType и List2CollectionType.