GetTemplateChild всегда возвращает ноль - PullRequest
5 голосов
/ 24 января 2011

Я использую GetTemplateChild следующим образом, но он всегда возвращает NULL.Как это исправить?

[TemplatePart(Name = "textPoints", Type = typeof(TextBlock))]
textPoints = (TextBlock)GetTemplateChild("TextBlock");

Ответы [ 2 ]

4 голосов
/ 24 января 2011

GetTemplateChild принимает в качестве параметра имя , а не тип.Поскольку ваш XAML определен как:

<TextBlock Text="{Binding}" Foreground="Cyan" 
    x:Name="textPoints"

Попробуйте передать "textPoints" вместо "TextBlock" в качестве имени для извлечения:

[TemplatePart(Name = "textPoints", Type = typeof(TextBlock))]
textPoints = (TextBlock)GetTemplateChild("textPoints");
2 голосов
/ 24 января 2011

Похоже, вы пытаетесь получить дочерний шаблон какого-то другого элемента управления, откуда вы вызываете GetTemplateChild?

Если ваш ItemsControl находится внутри какого-то UserControl, то GetTemplateChild не будет работать, так как дочерние элементы вашего UserControl не являются частьюшаблона child в любом случае, и он не будет рекурсивно искать каждый дочерний шаблон.

В основном GetTemplateChild используется в пользовательских элементах управления.

...