Я ищу несколько советов по использованию 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. Все это отображается и работает правильно.
Похоже, что следующим шагом будет либо:
- Понимать, как использовать IHeader для получения имени от каждого Thingx, чтобы я мог передать список Thingx при создании ветви.
- Узнайте, как создать ViewModel для LotsOfLists и как эта модель представления может обрабатывать список различных классов. Это кажется более «правильным», потому что я представляю, что мне нужно будет просматривать модели для каждого Thingx, и это может пригодиться позже.
Или ... что-то еще? Я действительно ищу руководство относительно того, где искать или что попробовать дальше, а не четкий ответ.