Я создаю приложение Windows Form, используя .NET 3.5. Я хотел бы использовать шаблон проектирования MVC. Приложение имеет две формы: быстрый запуск и представление, показывающее детали. У быстрого запуска просто есть дерево с 2 уровнями, поэтому древовидная структура выглядит примерно так:
- Категория 1
- Подкатегория 1-1
- Подкатегория 1-2
- Категория 2
Когда пользователь нажимает на категорию или подкатегорию, в представлении сведений отображаются все элементы, принадлежащие этой категории или подкатегории. Элемент может принадлежать только одной из категории или подкатегории (элементы в моем приложении на самом деле являются документами, такими как заказы, счета и т. Д.). Элемент категории и элемент подкатегории имеют почти идентичные свойства, но есть небольшая разница.
У меня есть класс контроллера, который обрабатывает событие click, вызванное быстрым запуском. Контроллер определяет, нажимает ли пользователь на категорию и подкатегорию, а затем получает все элементы, которые принадлежат этой категории или подкатегории. Затем все элементы отправляются в представление сведений для их отображения.
Мои вопросы: лучше ли использовать одно обобщенное представление сведений или создать представление для каждой категории и подкатегории? Если бы мне пришлось использовать одно обобщенное представление, мне нужно было бы показать / скрыть несколько полей в зависимости от того, принадлежат ли элементы категории или подкатегории, что может затруднить поддержание, если структура элементов категории и структура элементов подкатегории станут более разными в будущее.
Если бы я должен был создать представление для каждой категории и подкатегории, контроллер должен добавить представление категории и удалить представление подкатегории, когда пользователь нажимает на узел категории. Это то, что меня беспокоит, потому что контроллер должен добавить / удалить представление из главной формы, когда пользователь нажимает на узел, что для меня не очень хороший дизайн.
Так что ни один не кажется хорошим дизайном. Как правильно решить эту проблему?
EDIT:
Какая часть слишком расплывчата. По сути, пользователь может видеть два типа элементов: CategoryItem и SubCategoryItem. SubCategoryItem является дочерним классом CategoryItem. В шаблоне MVC мне нужно 2 представления (вызов CategoryView и SubCategoryView), и контроллер определяет, какое представление визуализировать пользователю? Или только одно представление, чтобы контроллер всегда отображал это представление, и задача представления состоит в том, чтобы определить, отображать ли CategoryView или SubCategoryItem?