Hallo Zusammen,
ich habe ein kleines Problem mit TempalteBinding in einem CustomControl.
Ich habe eine Property wie folgt definiert:
public static readonly DependencyProperty GroupNameProperty =
DependencyProperty.Register("GroupName",
typeof(string),
typeof(DynamicViewItem),
new PropertyMetadata("DynamicViewItem"));
public string GroupName
{
get { return (string)GetValue(GroupNameProperty); }
set { SetValue(GroupNameProperty, value); }
}
Das Template für mein Control (leitet von ItemsControl ab) ist folgendes:
<Style TargetType="local:DynamicViewItem">
<Setter Property="GroupName" Value="DynamicViewItem" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<toolkit:Expander x:Name="PART_HeaderedContentControl"
Style="{StaticResource DynamicViewExpanderStyle}"
Header="{TemplateBinding GroupName}">
<ItemsPresenter />
</toolkit:Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<toolkit:WrapPanel Name="WrapPanel1" Orientation="Horizontal" />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<ContentPresenter />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
Man sieht, wie ich versuche per TemplateBinding die Property GroupName an die Header-Property des Expanders zu binden.
Laut diversen Tutorials habe ich folgendes Attribut an mein CustomControl zu setzen:
[TemplatePart(Name = "PART_HeaderedContentControl", Type = typeof(Expander))]
Die Eigenschaft "GroupName" wurde in Typ "System.Windows.Controls.Control" nicht gefunden.
Die Zeilen und Positionsangaben verweisen eindeutig auf das TemplateBinding auf meine Property.
Warum tut das nicht? Meinem Verständis nach sollte ich doch auf alle Properties meines Controls zugreifen können, oder? Was habe ich vergessen?
Etwas irritierend ist, dass das ganz mit einem CostumControl funktioniert, dass con Control erbt. Handelt es sich aber um ein ItemsControl bekomme ich besagte Fehlermeldung
Viele Grüße
Jürgen