Связь между ViewModels в Windows Phone 7 - PullRequest
2 голосов
/ 16 декабря 2010

Мы используем Caliburn.Micro для простого приложения для Windows Phone 7, которое фотографирует определенный товар, а затем сохраняет изображение и XML-файл с информацией, которую вводит пользователь.

У меня есть первый экран с кнопкой для нажатия, и «CameraCaptureTask» получает фотографию, я читаю фотографию и сохраняю в хранилище, но теперь я не уверен, как перевести пользователя в другой вид и передать имя файла и уникальный идентификатор, сгенерированный в Первый просмотр.

Я пробовал NavigationService.Navigate ("...") со строкой запроса, но не могу получить строку запроса в ViewModel.

Я в замешательстве, скажем, когда вы создаете мастера, как вы переходите от одного просмотра к другому, без использования одиночного или хакерского способа. Есть хороший способ Caliburn.Micro с хорошим примером?

Ответы [ 3 ]

2 голосов
/ 16 декабря 2010

Когда вы используете Caliburn Micro, он автоматически сопоставляет ключи в строке запроса со свойствами в модели представления.

Например, если вы переходите к "/Views/ProductView.xaml?Id=42"тогда ProductViewModel.Id будет равен 42.

1 голос
/ 17 апреля 2011

Использование метода, данного nigel, будет работать. Однако не забывайте, что свойство Id в ProductView не будет установлено в конструкторе. Он устанавливается в методе OnActivate ().

1 голос
/ 16 декабря 2010

Я не могу говорить конкретно о Caliburn, но с шаблоном MV-VM ваши модели просмотра обмениваются данными только с помощью мутаций.

В вашем случае я ожидаю, что модель представляет собой наборТоварные позиции плюс некоторая другая информация, такая как выбранный товар.При фотографировании создается новый элемент «Сток», добавляется его в коллекцию, а затем устанавливается только что созданный элемент «Сток» на тот, который был только что создан.

Когда вы переходите к новому виду, текущийвыбранный предмет палки будет выбран из модели.

...