Иерархические данные привязки данных дерева WPF со смешанными типами

У меня немного сложная ситуация с привязкой дерева WPF. Я потратил последние 2 дня, пытаясь найти это в Google, и это - закрытый вариант, который я придумал, но он не решает проблему.

Вот ситуация:

У меня есть объект, который выглядит следующим образом:

public class Category
{
  public string Name { get; set; }
  public List Categories { get; set; }
  public List Products { get; set; }
}

public class Product
{
  public string Name { get; set;
}

Каждая Категория может иметь список объектов и дочерних категорий. У меня есть причина для этого, которая имеет полный смысл для меня и приложения, которое я пишу.

Фактическая конструкция объекта может выглядеть примерно так:

Category - Pharmacy
  |-Product - Aspirin
  |-Product - Tylenol
  |-Category - Tooth Paste
  |  |-Product - Crest
  |  |-Product - Colgate
  |-Category - Paper Products
   |-Category - Toilet Paper
   |  |-Product - NoName
   |  |-Product - Charmin
   |-Category - Facial Tissue
      |-Product - Kleenex
Category - Household
  |-Product - Pinesol Cleaner
  |-Product - Garbage Bags

Теперь я пытаюсь привязать эту связь к древовидной структуре. Я бы хотел, чтобы TreeView выглядел почти идентично указанной выше конструкции объекта.

Пока что мой XAML Treeview выглядит так:

  
            
                
                    
                        
                    
                
                
                    
                        
                    
                
            
        

Это отлично работает для основного списка категорий и каждого из его вспомогательных продуктов. Но он не идет дальше и не отображает подкатегории под каждой категорией.

Есть ли способ сделать это напрямую с помощью шаблонов, чтобы каждый элемент (категория или продукт) был выбран? Я использую шаблон MVVM и не хочу прибегать к использованию кода позади, но буду, если это необходимо.

33
задан Community 23 May 2017 в 12:17
поделиться