Ich habe ein Steuerelement, das über ein untergeordnetes ContentControl verfügt, dessen Ansicht über einen DataTrigger und DataTemplate festgelegt wird. Ich möchte den DataContext dieser Steuerelemente auf eine Eigenschaft meines DataContextViewModel-Hauptelements festlegen. Mein Ansichtscode sieht so aus.WPF: DataContext in DataTemplate View einbinden
<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>
Auf dem Ansichtsmodell der enthaltenden Ansicht habe ich die folgenden Eigenschaften, die ich bestätigt habe richtig eingestellt wird und aktualisiert:
public TagsExportViewModel TagsExportViewModel { get; set; }
public TagsImportViewModel TagsImportViewModel { get; set; }
public TagsEditViewModel TagsEditViewModel { get; set; }
Alles ist in Ordnung, bis ich die Kinder Ansichten (TagsEditView, TagsImportView Snoop ..) und dann sehe ich, dass der DataContext nicht gesetzt ist.
Wie bekomme ich diese ViewModels in diese Ansichten? Oder mache ich das falsch?
Jede Hilfe wird sehr geschätzt.
Welche Art von Steuerelement ist Ihre lokale: TagsImportView und die anderen benutzerdefinierten Steuerelemente? Von was erben sie? Und was ist das Control, dessen Daten von Ihrem DataTemplate templatiert werden? –