Ich baue ein Silverlight-Steuerelement und ich versuche, Bindungen für die Header und Body ContentControls über ihre jeweiligen DataTemplates einzurichten. Ich bin mir nicht sicher warum, aber das funktioniert nicht (lautlos). Meine einzige Vermutung ist, dass die DataTemplates StaticResources sind. Kann jemand Rat geben? Die Steuerung verfügt über die folgenden Standardvorlage:Bindung von innerhalb eines DataTemplate?
<Style TargetType="local:LayoutItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:LayoutItem">
<StackPanel>
<StackPanel.Resources>
<DataTemplate x:Key="DefaultHeaderTemplate">
<StackPanel>
<TextBlock Text="{Binding HeaderText}" FontSize="15"/>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="DefaultBodyTemplate">
<StackPanel>
<TextBlock Text="{Binding BodyText}" FontSize="12"/>
</StackPanel>
</DataTemplate>
</StackPanel.Resources>
<ContentControl x:Name="Header"
ContentTemplate="{StaticResource DefaultHeaderTemplate}" />
<ContentControl x:Name="Body"
ContentTemplate="{StaticResource DefaultBodyTemplate}" />
</StackPanel>
</ControlTemplate>
</Setter.Value>
Dank!
aktualisieren
arbeiten Eigentlich ist der folgende Code auch nicht, so könnte meine Vermutung über die StaticResources falsch sein.
<ContentControl x:Name="Header">
<ContentControl.ContentTemplate>
<DataTemplate x:Key="DefaultHeaderTemplate">
<StackPanel>
<TextBlock Text="{Binding HeaderText}" FontSize="15" />
</StackPanel>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
Ist der DataContext für das Steuerelement irgendwo festgelegt. Haben die Daten, an die Sie binden, die Eigenschaft "HeaderText" und "BodyText"? –
Ja, ich bin mir ziemlich sicher, dass das stimmt. Als Beweis kann ich ContentControl durch ersetzen und es funktioniert. –