Как будет работать MVC в следующем случае -C # - PullRequest
0 голосов
/ 13 мая 2009

K, поэтому в прошлом году я создал программу на основе семейного древа в java как групповой проект, и мы использовали MVC, но я действительно забываю, как это работает, и заметки больше не находятся в сети.
Что еще хуже, поскольку наш проект не был огромным, профессор сказал объединить модель и контроллер.
Так что теперь, когда я пытаюсь сделать приятный проект, чтобы добавить в свой портфель возможностей для трудоустройства, я понятия не имею, как на самом деле работает MVC.

Как бы выглядели мои отношения между моделью, видом и контроллером в следующих случаях, я, вероятно, мог бы выяснить остальное из этого

  1. Модель имеет состояние, называемое местоположением, и представление должно знать, когда оно изменяется, чтобы оно могло обновлять свой дисплей
  2. Вид имеет кнопку, которую модель должна знать при нажатии

С теми, кто решил, я, скорее всего, сделаю все остальное сам.

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

Ответы [ 3 ]

2 голосов
/ 13 мая 2009

Вот кодпроект, который может помочь: http://www.codeproject.com/KB/cs/model_view_controller.aspx

1 голос
/ 13 мая 2009
  1. Модель имеет состояние, называемое местоположением, и представление должно знать когда это меняется, чтобы он мог обновить это дисплей

Создайте интерфейс для представления под названием IMyScreen или что-то подобное Добавьте метод UpdateLocation в интерфейс или что-то подобное Создайте переменную или функцию свойства, которые видны для состояния типа IMyScreen И для представления. Назовите это как MyScreen Попросите View реализовать IMyScreen и поместите код, необходимый для обновления View, когда состояние Location изменяется в методе UpdateLocation. В вашей процедуре инициализации просмотра необходимо зарегистрировать само представление как текущий MyScreen. Измените код, работающий с Location, чтобы запускать MyScreen.UpdateLocation каждый раз, когда он изменяется.

В идеале View должен создать объект Command, запустить его метод execute. Метод execute будет извлекать любые необходимые параметры, изменять местоположение и затем вызывать MyScreen.UpdateLocation. Но вы должны сосредоточиться на изменении одной вещи за раз и сохранить ее на потом.

  1. Вид имеет кнопку, которую модель должна знать при нажатии

Это немного расплывчато. Обычно кнопки, подобные этой, либо выполняют какое-либо действие, либо указывают состояние (флажки, параметры и т. Д.)

Если он выполняет действие, то идеальным методом является создание интерфейса ICommand. У него есть один метод Execute. Используйте процедуру инициализации для передачи любых необходимых параметров. Поместите код, необходимый для изменения модели, в метод execute. Когда кнопка нажата, она будет что-то вроде

Sub MyButton_Click
   ModifyCommand ThisCommand = New ModifyCommand(Parm1, Parm2, Parm3)
   ModifyCommand.Execute
End Sub

Если вам нужно запросить состояние кнопки, используйте интерфейс IMyScreen и добавьте свойство ButtonClicked. Когда кнопка нажата, тогда установите флаг, что она была нажата в представлении Когда Модель должна знать, была ли нажата кнопка, она называется MyScreen.ButtonClicked.

0 голосов
/ 13 мая 2009

Вот отличный пример в ASP.NET-MVC: http://www.codeplex.com/mvcsamples. Модель - это просто данные, представление - это код пользовательского интерфейса, который показывает данные, и контроллер решает, какое представление показать.

...