GetTemplateChild 始终返回 null

发布于 2024-10-13 17:36:54 字数 195 浏览 1 评论 0原文

我使用 GetTemplateChild 如下,但它总是返回 NULL。如何解决这个问题?

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

I am using GetTemplateChild as follow, but it always returns NULL. How to fix this?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

北笙凉宸 2024-10-20 17:36:54

GetTemplateChild 采用名称 em> 作为参数,而不是类型。由于您的 XAML 定义为:

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

尝试传递 "textPoints" 而不是 "TextBlock" 作为要检索的名称:

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

GetTemplateChild takes the name as a parameter, not the type. Since your XAML is defined as:

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

Try passing "textPoints" instead of "TextBlock" as the name to retrieve:

[TemplatePart(Name = "textPoints", Type = typeof(TextBlock))]
textPoints = (TextBlock)GetTemplateChild("textPoints");
菩提树下叶撕阳。 2024-10-20 17:36:54

看起来您正在尝试从调用 GetTemplateChild 的位置获取其他控件的模板子项?

如果您的 ItemsControl 位于某个 UserControl 内,则 GetTemplateChild 将不起作用,因为您的 UserControl 的子级无论如何都不是模板子级的一部分,并且它不会递归搜索每个子级的模板子级。

GetTemplateChild 主要用于自定义控件。

Looks like you are trying to get template child of some other control, from where you are calling GetTemplateChild?

If your ItemsControl is inside some UserControl then GetTemplateChild will not work as children of your UserControl are not part of template child anyway and it will not recursively search every child's template child.

Mostly GetTemplateChild is used in Custom Controls.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文