標題基本上指出了它。我已閱讀與同一問題相關的其他博客和帖子,但沒有提供的解決方案爲我工作。WPF OnApplyTemplate對ItemsControl的派生類不叫
這裏是我的代碼的簡化:
<!-- CustomItemsControl.xaml -->
<ItemsControl x:Class="myNamespace.CustomItemsControl"
xmlns:local="clr-namespace:myNamespace">
<ItemsControl.Resources>
<Style TargetType="{x:Type local:CustomItemsControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CustomItemsControl}">
<Grid x:Name="MyItemsHost" Background="{TemplateBinding Background}" IsItemsHost="True"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ItemsControl.Resources>
</ItemsControl>
// CustomItemsControl.xaml.cs
namespace myNamespace
{
public partial class CustomItemsControl : ItemsControl
{
public CustomItemsControl()
{
this.DefaultStyleKey = typeof(CustomItemsControl);
}
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
var MyItemsHost = (Grid)base.GetTemplateChild("MyItemsHost");
}
}
}
我做錯了嗎?
補充說明:項目類型爲「ClassLibrary」。我試圖在ResourceDictionary中的「Themes」文件夾中定義一個名爲「Generic.xaml」的樣式。我也在我的「AssemblyInfo.cs」中使用了「ThemeInfo」屬性,但都沒有解決問題。 – 0xbadf00d 2011-06-04 17:54:15