про MVVM
От: Аноним  
Дата: 04.04.11 12:53
Оценка:
Добрый день.

Решил попробовать MVVM, возник вопрос:
Есть форма объекта, есть его ModelView и соответственно Model этого объекта.
В ModelView есть команда, которая открывает другую форму и новая форма должна быть как showDialog к форме модели...
Как правильнее в модель передать ссылку на форму? или как правильнее открыть вторую форму?

спасибо!
Re: про MVVM
От: Vladek Россия Github
Дата: 04.04.11 14:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый день.


А>Решил попробовать MVVM, возник вопрос:

А>Есть форма объекта, есть его ModelView и соответственно Model этого объекта.
А>В ModelView есть команда, которая открывает другую форму и новая форма должна быть как showDialog к форме модели...
А>Как правильнее в модель передать ссылку на форму? или как правильнее открыть вторую форму?

А>спасибо!


Через параметр команды. А если надо изолировать модель вида от прямого взаимодействия с окнами, то можно использовать какой-нибудь сервис, который будет их открывать вместо модели.
Re[2]: про MVVM
От: Аноним  
Дата: 04.04.11 14:51
Оценка:
Здравствуйте, Vladek, Вы писали:

V>Через параметр команды. А если надо изолировать модель вида от прямого взаимодействия с окнами, то можно использовать какой-нибудь сервис, который будет их открывать вместо модели.


А можно поподробнее с сервисом? примера нет никого?
Спасибо!
Re[3]: про MVVM
От: Vladek Россия Github
Дата: 04.04.11 18:10
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Vladek, Вы писали:


V>>Через параметр команды. А если надо изолировать модель вида от прямого взаимодействия с окнами, то можно использовать какой-нибудь сервис, который будет их открывать вместо модели.


А>А можно поподробнее с сервисом? примера нет никого?

А>Спасибо!

Это просто класс или интерфейс, который скрывает всю работу с окнами от модели вида, что позволяет потом модель вида изолированно тестировать, подставляя на место DialogService заглушку.

class ViewModel
{
  IDialogService DialogService { get; set; }

  void ShowDialog(object mainWindow)
  {
    DialogService.ShowDialog(ownerWindow);
  }
}
Re[3]: про MVVM
От: henson Россия http://www.njt-rails.com
Дата: 04.04.11 21:48
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Vladek, Вы писали:


V>>Через параметр команды. А если надо изолировать модель вида от прямого взаимодействия с окнами, то можно использовать какой-нибудь сервис, который будет их открывать вместо модели.


А>А можно поподробнее с сервисом? примера нет никого?

А>Спасибо!

Это называется Service Locator

Пример здесь
Re: про MVVM
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.04.11 14:55
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Решил попробовать MVVM, возник вопрос:

А>Есть форма объекта, есть его ModelView и соответственно Model этого объекта.
А>В ModelView есть команда, которая открывает другую форму и новая форма должна быть как showDialog к форме модели...
А>Как правильнее в модель передать ссылку на форму? или как правильнее открыть вторую форму?

Правильно было бы не мешать модель (пусть даже VM-ную) и представление.
Сделай в модели нужные события и всю гуюню реализуй в реактивной манере (на событиях).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.