Wpf TemplatedParent未设置为UserControl的子级

Wpf TemplatedParent未设置为UserControl的子级,wpf,xaml,data-binding,binding,user-controls,Wpf,Xaml,Data Binding,Binding,User Controls,在我的项目中,我有一个Usercontrol,它包含两个子控件,比如一个textbox和一个button。在App.xaml中为Textbox编写了一个通用样式。因此,当我试图获取TemplatedParent时,这个样式将应用于usercontrol的Textbox和in-tat Textbox,它是null。如何从文本框中获取Usercontrol,以便以文本框样式获取Usercontrol中的属性。TemplatedParent可在ControlTemplate中使用 对于样式,您需要使用

在我的项目中,我有一个Usercontrol,它包含两个子控件,比如一个textbox和一个button。在App.xaml中为Textbox编写了一个通用样式。因此,当我试图获取TemplatedParent时,这个样式将应用于usercontrol的Textbox和in-tat Textbox,它是null。如何从文本框中获取Usercontrol,以便以文本框样式获取Usercontrol中的属性。

TemplatedParent
可在
ControlTemplate
中使用

对于样式,您需要使用
RelativeSource
,模式设置为
FindAncestor
AncestorType
设置为
UserControl

假设您想从
文本框样式
文本
设置为
用户控件的名称
,您可以这样做:

<Style TargetType="TextBox">
   <Setter Property="Text"
           Value="{Binding Path=Name,
                           RelativeSource={RelativeSource Mode=FindAncestor, 
                                                   AncestorType=UserControl}}"/>
</Style>


对于默认用户控件的属性,您的代码可以正常工作,但对于我的自定义用户控件,它不起作用<代码>不,这也适用。张贴相关代码。如果
UserControl
位于TextBox的父可视化树中,它将工作。根据可视化树,它将工作,但不工作。。这就是问题所在。理想情况下应该如此。如果不是,我怀疑你的代码有问题。请把它贴在这里。没有更多的代码可以贴在这里。。我有一个名为UserControl1的
Usercontrol
,而
MyProperty
是一个dependencProperty,它位于
Usercontrol
类型的字符串中。要在上述发布的绑定中访问此属性。