2010-11-24 6 views
0

Привет, дизайнеры шаблонов-Выполнение трехэтапного процесса в MVC

Я пытаюсь построить четырехэтапный процесс в графическом интерфейсе VB.NET. Приложение переносит объекты из AppA в AppB.

Приложение выполните следующие действия:

  1. Пользователь создает общий запрос в графическом интерфейсе пользователя, чтобы определить, какие объекты APPA для передачи.
  2. Модель получает queryResults, DataGrid в View перечисляет каждый результат
  3. Пользователь отменяет выделение элементов не должны быть передан AppB
  4. переводов
  5. Модели выбранных элементов

Я новичок в MVC, и я пытаюсь выяснить, как это должно работать. Я внедрили в модели следующие функции, но не знаю, MVC-способ связать их в мой GUI:

Function getQueryResults(queryParams) as Items 
Function transferItems(items) 

ли я сохранить структуру элементов данных в модели?

Как удалить отмененную из структуры данных Items без создания логики в представлении?

Обе из перечисленных функций требуют времени, как я могу проектировать вещи, чтобы позволить мне BackgroundWorker функции модели?

Благодаря

ответ

0

Пожалуйста, обратите внимание, что я C#, а не VB DEV, но он должен работать одинаково, независимо.

Думайте о своем представлении как о действительно, действительно онемевшем.

Ваш взгляд не должен иметь никакой логики вообще. Каждый раз, когда пользователь видит что-то (например, отменяет выбор элемента), он должен указывать контроллеру. Каждый раз, когда контроллер хочет, чтобы Gui отображал что-то новое, он должен сказать, что это так. Обычно между представлением и контроллером или между моделью и представлением существует шаблон субъекта/наблюдателя, так что вид будет автоматически обновлять или уведомлять контроллер, когда это происходит.

В этом случае представьте себе такой разговор.

  • V: Эй, C, что мне отображать?
  • C: Здесь вы идете. Имейте модель. M, пожалуйста, загрузите свои товары.
  • M: Конечно, босс ... там вы идете. Кстати, кто-то смотрел, я просто изменился.
  • V: О, посмотрите, модель изменилась. Думаю, я должен отображать эти предметы.
  • C: Просто ждать ввода пользователем сейчас.
  • V: Эй, кто-то просто отменил выделение этого значения из списка.
  • C: Да? Круто. M, удалите это значение из списка товаров, пожалуйста.
  • М: Конечно. Кстати, кто-то смотрел, я просто изменился.
  • V: О, посмотрите, модель изменилась. Я должен перезагрузить элементы.
  • V: Эй, C, теперь кто-то нажал на эту кнопку.
  • C: Отлично. M, пожалуйста, передайте предметы.
  • М: Конечно, босс. Кстати, кто-то смотрел, я просто изменился.
  • V: О, посмотрите, модель изменилась. Теперь он говорит, что он занят ... Я показываю для этого панель обработки.
  • М: Хорошо, все готово. Кстати, кто-то смотрел, я просто изменился.
  • V: О, посмотрите, модель изменилась. Больше не занят. Нет товаров. Нет обработки. Без разницы.

Вы можете либо сохранить структуру данных Items в объекте домена, либо просто составить список элементов вашей модели для целей MVC.

Хорошая вещь, которая делает ее более похожей на MVP или MVVM, заключается в представлении представления оболочкой вокруг модели, дающей ей именно то, что ей нужно, и только то, что ему нужно - так, например, вы могли бы дать ей который включал в себя элементы, а также флаг, который сказал «занят», когда ваш рабочий не работает.

Надеюсь, это поможет.

Смежные вопросы