我正在尝试了解HelloScreens随附的样本Caliburn.Micro.的ShellView.xaml包括一个ContentControl在底部.有人可以解释这个元素的重要性吗?我试图评论它没有看到任何区别.
<UserControl x:Class="Caliburn.Micro.HelloScreens.Shell.ShellView"
             xmlns:...>
    <Grid>
    <local:TiledBackground SourceUri="/Resources/Images/backgroundtexture.png" />
        <Image Source="/Resources/Images/backgroundshadow.png"
               Stretch="Fill" />
        <ct:DockPanel>
          <.../>
        </ct:DockPanel>
        <!--  Whats this one for?  --/>
        <ContentControl x:Name="Dialogs" 
                        VerticalContentAlignment="Stretch"
                        HorizontalContentAlignment="Stretch"/>
    </Grid>
</UserControl>
它绑定到viewmodels Dialogs-property,这是一个自定义实现IConductActiveItem,但它用于什么?
只要您具有ContentControl与视图模型属性相同的名称,Caliburn.Micro就会找到该视图模型的相应视图,将视图注入到视图中ContentControl,并将视图模型绑定到视图.
在这种情况下,Dialogs属性是IDialogManager您所说的类型,它解析为DialogConductorViewModel(导体类型).因此将DialogConductorView其注入内容控件.
此视图显示应用程序中的对话框,如果您查看视图,它还会ContentControl显示当前的视图ActiveItem.这是典型的Caliburn.Micro指挥.
<Controls:CustomTransitionControl x:Name="ActiveItem" Margin="8" />
请注意,DialogConductorView它始终显示在应用程序的内容中ShellView,但只有在非空时才会显示Grid内部.DialogConductorViewActiveItem
<Grid Visibility="{Binding ActiveItem, Mode=TwoWay, 
Converter={StaticResource nullToCollapsed}}"
| 归档时间: | 
 | 
| 查看次数: | 1449 次 | 
| 最近记录: |