C # Как использовать шаблон представления представления в форме один ко многим? - PullRequest
0 голосов
/ 03 июля 2011

Я изо всех сил пытаюсь реализовать шаблон модель-представление-презентатор. Я использую этот шаблон следующим образом:

  • Я создаю представление (= интерфейс) для формы
  • Я создаю презентатор для формы, которая принимает представление в качестве параметра в конструкторе
  • Форма реализует представление и создает объект презентатора.

Теперь у меня есть форма, где компания может быть зарегистрирована. Но может иметь несколько контактных лиц. Итак, в этой форме у меня есть сетка с контактными лицами.

У меня вопрос: нужно ли добавлять поля контактного лица в то же представление, что и поля других компаний? Или я должен отделить его в другом представлении, чтобы форма реализовывала два представления (ICompanyView и IContactPersonView) с двумя классами презентаторов?

Ответы [ 2 ]

2 голосов
/ 04 июля 2011

Прежде всего, не имейте своих взглядов, создающих экземпляры докладчиков, вы этого не хотите. Какой бы вкус вы ни использовали для MVP (Passive View, Supervising Controller), ваше представление должно содержать как можно меньше. У меня есть представление в конструкторе презентатора, и в методе Initialize () презентатора я присваиваю view.Presenter = this (вы также можете сделать это в Start () или каком-либо другом методе "show", но я обычно отделяю Initialization для другого вызова, потому что вопросов жизненного цикла докладчика)

Что касается вашего вопроса о множественных представлениях, если у вас есть сложная логика в этой части формы (но я не вижу ее в вашем примере), вы, вероятно, могли бы выделить ее в отдельной триаде пользовательского элемента управления / MVP - это помогло мне уменьшить и упростить код докладчиков.

1 голос
/ 04 июля 2011

Если вам нужен IContactPersonView / ICompanyView только в другом месте, чем разделять их, в противном случае не стоит.

...