在WPF中,什么是TemplatedParent?

在WPF中,什么是TemplatedParent?,wpf,Wpf,我试图理解RelativeSource绑定,但找不到TemplatedParent的定义。 “获取用于返回为TemplatedParent模式构造的RelativeSource的静态值。” 不出现在“Windows演示基金会释放”索引中。 简单地说,什么是TemplatedParent请?TemplatedParent指的是应用模板的控件实例。您可以使用TemplatedParent绑定到该对象(及其基类)上声明的属性。在WPF中,模板用于构造类型树。WPF本质上是在创建该类型的新对象时复制模

我试图理解RelativeSource绑定,但找不到TemplatedParent的定义。

“获取用于返回为TemplatedParent模式构造的RelativeSource的静态值。”

不出现在“Windows演示基金会释放”索引中。


简单地说,什么是TemplatedParent请?

TemplatedParent
指的是应用模板的
控件
实例。您可以使用
TemplatedParent
绑定到该对象(及其基类)上声明的属性。

在WPF中,模板用于构造类型树。WPF本质上是在创建该类型的新对象时复制模板

因此,在模板内部,如果要引用新对象,可以使用
TemplatedParent
进行快速访问。否则,您必须使用
相对资源
向上遍历树以找到父对象。

注意:


TemplatedParent表示父级已模板化。Templated是英语中的被动语态。换句话说,父元素与模板一起应用。因此,在模板中,您可以轻松绑定父属性。

因此,如果我在ItemsControl的DataTemplate中的StackPanel中有一个文本框,文本框的TemplatedParent应该是ItemsControl而不是StackPanel?@David:ItemsControl中某个项目的
TemplatedParent
与您认为的不一样。我相信这是一个
ContentPresenter
实例(您的
ItemsSource
中的每个项目都有一个单独的实例)。嗯,谢谢Gabe,但我想我又迷路了。ConentPresenter不在“WPF Unreleased”的索引中,我将不得不做更多的搜索…@David:查看所有血淋淋的细节。嗨,谢谢你的解释。我只是想知道{relativesourceself}是否有区别?参见