Подтвердить что ты не робот

Различный вид в зависимости от ContentControl (Caliburn.Micro)

Я привязываю ViewModels к ContentControls и позволяю Caliburn заботиться о создании и привязке представления. Тем не менее, я хотел бы настроить Caliburns ViewModel- > Просмотр соглашения, на основе которого ContentControl я привязываю.

Например, обычный ContentControl, я хочу, чтобы обычный вид привязывался (SomethingViewModel → SomethingView). Но для некоторого ContentControl я хочу, чтобы Caliburn извлекала View, например SomethingViewSpecial. Возможно ли это?

4b9b3361

Ответ 1

Да, это возможно.

Используйте свойство cal:View.Context, а затем назовите свое представление для указанного контекста, например YourNamespace.Something.ContextView (удалите "ViewModel" из вашего имени модели просмотра, добавьте точку и значение свойства Context).

Таким образом, вы можете даже привязать несколько представлений к одной модели представления.

Пример:

<ContentControl x:Name="Toolbar" cal:View.Model="{Binding ActiveItem}" cal:View.Context="Toolbar" />

Вы можете увидеть рабочий пример здесь (из CoProject пример приложения часть 9).