- Модель имеет состояние, называемое местоположением, и представление должно знать
когда это меняется, чтобы он мог обновить
это дисплей
Создайте интерфейс для представления под названием IMyScreen или что-то подобное
Добавьте метод UpdateLocation в интерфейс или что-то подобное
Создайте переменную или функцию свойства, которые видны для состояния типа IMyScreen И для представления. Назовите это как MyScreen
Попросите View реализовать IMyScreen и поместите код, необходимый для обновления View, когда состояние Location изменяется в методе UpdateLocation.
В вашей процедуре инициализации просмотра необходимо зарегистрировать само представление как текущий MyScreen.
Измените код, работающий с Location, чтобы запускать MyScreen.UpdateLocation каждый раз, когда он изменяется.
В идеале View должен создать объект Command, запустить его метод execute. Метод execute будет извлекать любые необходимые параметры, изменять местоположение и затем вызывать MyScreen.UpdateLocation. Но вы должны сосредоточиться на изменении одной вещи за раз и сохранить ее на потом.
- Вид имеет кнопку, которую модель должна знать при нажатии
Это немного расплывчато. Обычно кнопки, подобные этой, либо выполняют какое-либо действие, либо указывают состояние (флажки, параметры и т. Д.)
Если он выполняет действие, то идеальным методом является создание интерфейса ICommand.
У него есть один метод Execute.
Используйте процедуру инициализации для передачи любых необходимых параметров.
Поместите код, необходимый для изменения модели, в метод execute.
Когда кнопка нажата, она будет что-то вроде
Sub MyButton_Click
ModifyCommand ThisCommand = New ModifyCommand(Parm1, Parm2, Parm3)
ModifyCommand.Execute
End Sub
Если вам нужно запросить состояние кнопки, используйте интерфейс IMyScreen и добавьте свойство ButtonClicked.
Когда кнопка нажата, тогда установите флаг, что она была нажата в представлении
Когда Модель должна знать, была ли нажата кнопка, она называется MyScreen.ButtonClicked.