WPF ContentControl没有显示用户控件(应该由DataContext绑定)

时间:2015-05-18 18:43:56

标签: c# wpf xaml contentcontrol

我有一个包含ContentControl的UserControl,而ContentControl又应该根据设置为DataContext的视图模型呈现UserControl。

XAML:

<UserControl.Resources>
    <DataTemplate DataType="{x:Type pcViewModels:SystemPCViewModel}">
        <controls:SystemPCControl />
    </DataTemplate>
    <DataTemplate DataType="{x:Type pcViewModels:ChipPCViewModel}">
        <controls:ChipPCControl />
    </DataTemplate>
    <!-- Left out other definition, I guess you get the point -->
</UserControl.Resources>

<Grid Background="Aqua">
      <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>

    <ScrollViewer Background="Blue">

        <ContentControl DataContext="{Binding CurrentContent}"/>

    </ScrollViewer>

    <StackPanel 
        Grid.Row="1"
        Orientation="Horizontal" FlowDirection="RightToLeft">

        <Button 
            Width="150" Height="50"
            Content="Configure"
            VerticalAlignment="Center"
            Command="{Binding CurrentContent.ConfigureCommand}" />
    </StackPanel>

</Grid>

我让Grid和ScrollViewer的背景难看,只是为了确保它是可见的。所以这一切都可见,我可以看到视图模型是DataContext(按钮也正常工作)。

之前我使用过ContentControl,而且我的所有知识都是这样的。我做错了什么?

1 个答案:

答案 0 :(得分:2)

您必须设置ContentContentControl属性。您可以执行以下任一操作:

<ContentControl DataContext="{Binding CurrentContent}" Content="{Binding}" />

<ContentControl Content="{Binding CurrentContent}" />