5

已经有这方面的问题了,但他们没有回答我的问题。例如:

 <ContentControl.Resources>
            <DataTemplate DataType="{x:Type Databinding:RedScreenViewModel}" >
                <Databinding:RedScreen DataContext="{Binding}"/>
            </DataTemplate>
            <DataTemplate DataType="{x:Type  Databinding:BlueScreenViewModel}">
                <Databinding:BlueScreen DataContext="{Binding}" />
            </DataTemplate>
 </ContentControl.Resources>

如您所见,我正在尝试为创建的 View 设置 DataContext,希望它会使用用于创建它的 ViewModel。但是当我单步执行后面的代码时...... DataContext 始终为空。我怎样才能达到我想要的?谢谢

4

1 回答 1

10

如果你DataTemplate为你的 ViewModel 类定义了一个 View 控件,它会自动DataContext设置为 ViewModel。

这应该有效:

<ContentControl.Resources>
    <DataTemplate DataType="{x:Type Databinding:RedScreenViewModel}">
        <Databinding:RedScreen />
    </DataTemplate>
    <DataTemplate DataType="{x:Type Databinding:BlueScreenViewModel}">
        <Databinding:BlueScreen />
    </DataTemplate>
</ContentControl.Resources>
于 2012-07-04T19:48:00.673 回答