Первый раз постер.
Я использую MVVM-Light с Silverlight 4 и RIA Services.Это был опыт обучения!Но пока что работает прекрасно .Мне было интересно две вещи.Прямо сейчас я использую инфраструктуру Messenger для передачи объектов EntityObjects обратно в ViewModel.Например, мне нужно открыть модель представления с конкретным объектом «Курс».Поэтому я создаю экземпляр View, и View отправляет сообщение ViewModel с курсом.У меня есть пара вопросов.
Первый вопрос: это лучший способ сделать это?Я не хочу использовать Prism или Unity или что-то подобное, потому что у меня нет времени на их изучение.(Для меня это была большая ничья MVVM Light. Часть Light.) Но я не мог найти другого способа передачи параметров в VM Locator.
Вторая часть - это означает, что яотправляю сообщения из View в конкретную ViewModel этого View.Мои сообщения выглядят так:
Tuple<Models.Course, Services.VWDS> courseDomainContextTuple = new Tuple<Models.Course, Services.VWDS>(Course, DomainContext);
NotificationMessage<Tuple<Models.Course, Services.VWDS>> message = new NotificationMessage<Tuple<Models.Course, Services.VWDS>>(this, this.DataContext, courseDomainContextTuple, Models.MessageString.EditCourse);
Messenger.Default.Send<NotificationMessage<Tuple<Models.Course, Services.VWDS>>>(message);
Итак, как вы можете видеть, я связываю курс и DomainContext (Ах, RIA. Почему вы не позволите мне получить контекст из EntityObject?)и отправив их в ViewModel (это «this.DataContext») - и да, я знаю, что должен создать класс для этого сообщения.
Вот проблема - каждый объект, который получает курс и DomainContext, получает это сообщение, а не только виртуальная машина, которую я обозначил как цель.
Итак, второй вопрос: это дизайн, или это ошибка, или я что-то не так делаю?
Спасибо!