Совместное использование viewmodel для нескольких представлений с использованием Caliburn.Micro в WP7 - PullRequest
1 голос
/ 08 апреля 2011

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

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

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

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

idev

Ответы [ 2 ]

2 голосов
/ 04 мая 2011

Используйте вложенное свойство 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 " Несколько представлений в одной и той же ViewModel " секции.

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

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

...