У меня есть пара View / ViewModel, которая правильно работает с Caliburn.Micro.
Внутри представления есть ContentControl, содержимое которого привязано к той же модели представления, и в зависимости от значения данного перечисляемого свойства в модели представления мне нужен другой шаблон для ContentControl:
<ContentControl Content="{Binding}">
<ContentControl.Resources>
<DataTemplate x:Key="TurnedOffView">
<local:TurnedOffView/>
</DataTemplate>
<DataTemplate x:Key="DeviceReadyView">
<local:DeviceReadyView/>
</DataTemplate>
</ContentControl.Resources>
<ContentControl.Style>
<Style TargetType="ContentControl">
<Setter Property="ContentTemplate" Value="{StaticResource TurnedOffView}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding State}" Value="{x:Static local:DeviceStates.Ready}">
<Setter Property="ContentTemplate" Value="{StaticResource DeviceReadyView}"/>
</DataTrigger>
<!-- More DataTriggers here, one for each state -->
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>
Я знаю, что Caliburn.Micro может использовать cal:View.Model
и cal:View.Context
, чтобы несколько представлений могли быть привязаны к каждой ViewModel, но я не могу понять, как это использовать, чтобы избежать всей этой многословности.
Итак, вопрос:
Как мне использовать
View.Model
иView.Context
(и переименовать свои представления) в этом сценарии, чтобы воспользоваться преимуществом подхода Caliburn.Micro, основанного на предпочтении конфигурации?
Project.Views.MainView.Main.TurnedOff
заканчивается пространство имен и начинается имя класса? Каким должно быть мое полное имя класса дляTurnedOff
View? - person heltonbiker   schedule 04.11.2014