已经有关于此的问题,但他们没有回答我的问题。 例如:
<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 始终为空。我怎样才能达到我想要的? 谢谢
最佳答案
如果您为包含 View 控件的 ViewModel 类定义一个 DataTemplate
,它会自动将 DataContext
设置为 ViewModel。
这应该有效:
<ContentControl.Resources>
<DataTemplate DataType="{x:Type Databinding:RedScreenViewModel}">
<Databinding:RedScreen />
</DataTemplate>
<DataTemplate DataType="{x:Type Databinding:BlueScreenViewModel}">
<Databinding:BlueScreen />
</DataTemplate>
</ContentControl.Resources>
关于c# - 如何为在 ViewModel 的 DataTemplate 中创建的 View 设置 DataContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11334680/