Совместное использование модели представления для нескольких представлений с помощью Caliburn.Micro в WP7

В настоящее время я работаю над проектом, который требует нескольких представлений одной и той же модели представления. Позвольте мне описать так:

  • ViewModel: CustomerDetailsViewModel.cs (наследуется от класса Screen)
  • Представление: CustomerDetails.cs (это представление имеет CustomerDetailsViewModel в качестве контекста данных и автоматически устанавливается Caliburn.Micro)
  • Представление: CustomerInfo.cs (теперь это представление, в котором я хочу поделиться CustomerDetailsViewModel, в котором могут быть некоторые данные, уже измененные с помощью представления CustomerDetails)

В настоящее время я использую NavigationService для перехода к представлению CustomerInfo. Есть ли способ передать ссылку текущей модели представления на представление, к которому пользователь переходит в caliburn.micro?

заранее спасибо

идев


person idev    schedule 08.04.2011    source источник


Ответы (2)


Используйте прикрепленное свойство cal:Bind.Model="{Binding}" для привязки представления к модели представления. См. http://caliburnmicro.codeplex.com/wikipage?title=All%20About%20Actions Раздел "Просмотреть первым".

В качестве альтернативы вы также можете просмотреть прикрепленное свойство cal:View.Context="MyContext", как описано здесь: http://caliburnmicro.codeplex.com/wikipage?title=Screens%2c%20Conductors%20and%20Composition Раздел "Несколько представлений для одной модели представления" .

person lukebuehler    schedule 04.05.2011

Добавьте одно или два свойства в файл App.xaml.cs. Все, что вы здесь поместите, будет сохраняться на протяжении всего жизненного цикла приложения (имейте в виду, что захоронение приведет к потере значения этого свойства). Если вы хотите передать ViewModel, установите для связанного свойства в App.xaml.cs модель представления, а затем, когда загрузится новая страница, прочитайте ее из того же свойства.

person Joel    schedule 18.04.2011