Treeview для коллекции списков разных типов - PullRequest
0 голосов
/ 29 января 2020

Я ищу несколько советов по использованию MVVM с Treeview, но, как мне кажется, я не могу найти ответ в Google. Я подозреваю, что я, вероятно, не ищу правильную вещь, так что, надеюсь, это ответ здесь. :)

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

public class LotsOfLists {
  public List<Thing1> Thing1s { get; set; } = new List<Thing1>();
  public List<Thing2> Thing2s { get; set; } = new List<Thing2>();
  ...
}

Каждый Thingx наследует от абстрактного класса:

public abstract class Header : IHeader {
  public string Name { get; set; }
  ...
}

И интерфейс (который я добавил по причинам, которые я сейчас забыл; возможно, просто для экспериментов, но, может быть, просто для того, чтобы почувствовать себя настоящим программистом) настолько же прост, чем может быть:

public interface IHeader {
  string Name { get; set; }
  ...
}

Я хочу связать его с древовидной структурой, в которой есть ветвь для каждого Thingx со всеми его дочерними элементами Thingx, показывающими - для начала - только свойство Name.

Использование Jo sh Отлично Смита Treeview Blog , который, я не думаю, может быть достаточно общим, у меня есть основы MVVM, реализованные с ветвями, связанными со списками тестов AHeader: объекты класса Header, собранные в моделях представлений ветвей, в модели единого представления как DataContext Treeview. Все это отображается и работает правильно.

Похоже, что следующим шагом будет либо:

  1. Понимать, как использовать IHeader для получения имени от каждого Thingx, чтобы я мог передать список Thingx при создании ветви.
  2. Узнайте, как создать ViewModel для LotsOfLists и как эта модель представления может обрабатывать список различных классов. Это кажется более «правильным», потому что я представляю, что мне нужно будет просматривать модели для каждого Thingx, и это может пригодиться позже.

Или ... что-то еще? Я действительно ищу руководство относительно того, где искать или что попробовать дальше, а не четкий ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...