【发布时间】:2016-07-13 23:11:19
【问题描述】:
我有一个控件,它有一个子 ContentControl,其视图是通过 DataTrigger 和 DataTemplate 设置的。我想做的是将这些控件的 DataContext 设置为我的主 DataContextViewModel 的属性。我的视图代码是这样的。
<UserControl.Resources>
<DataTemplate x:Key="ManageTags">
<local:TagsEditView DataContext="{Binding Path=TagsEditViewModel}">
</local:TagsEditView>
</DataTemplate>
<DataTemplate x:Key="ExportTags">
<local:TagsExportView DataContext="{Binding Path=TagsExportViewModel}">
</local:TagsExportView>
</DataTemplate>
<DataTemplate x:Key="ImportTags">
<local:TagsImportView DataContext="{Binding Path=TagsImportViewModel}">
</local:TagsImportView>
</DataTemplate>
在包含视图的 ViewModel 上,我已确认已正确设置和更新以下属性:
public TagsExportViewModel TagsExportViewModel { get; set; }
public TagsImportViewModel TagsImportViewModel { get; set; }
public TagsEditViewModel TagsEditViewModel { get; set; }
一切都很好,直到我窥探子视图(TagsEditView、TagsImportView..)然后我看到 DataContext 没有被设置。
究竟如何将这些 ViewModel 放入这些视图中?还是我走错了路?
非常感谢任何帮助。
【问题讨论】:
-
你的本地控件是什么类型的:TagsImportView 和其他自定义控件?他们继承了什么?您的 DataTemplate 对其数据进行模板化的控件是什么?