我正在使用GetTemplateChild,但它总是返回NULL。如何解决这个问题?
[TemplatePart(Name = "textPoints", Type = typeof(TextBlock))]
textPoints = (TextBlock)GetTemplateChild("TextBlock");
答案 0 :(得分:4)
GetTemplateChild将名称作为参数,而不是类型。由于您的XAML定义为:
<TextBlock Text="{Binding}" Foreground="Cyan"
x:Name="textPoints"
尝试传递"textPoints"
而不是"TextBlock"
作为要检索的名称:
[TemplatePart(Name = "textPoints", Type = typeof(TextBlock))]
textPoints = (TextBlock)GetTemplateChild("textPoints");
答案 1 :(得分:2)
看起来你正试图从你调用GetTemplateChild的地方获取一些其他控件的模板子项?
如果您的ItemsControl在某个UserControl中,那么GetTemplateChild将无法工作,因为您的UserControl的子项无论如何都不是模板子项的一部分,并且它不会递归搜索每个子项的模板子项。
大多数GetTemplateChild用于自定义控件。