要了解控件的托管控件

时间:2014-01-06 09:16:50

标签: wpf controls

我有一个自定义控件,其控件模板如下所示。

 <Style TargetType="local:CustomButton">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="local:CustomButton">
                <Grid>
                    <Border x:Name="CtrlBorder">
                        <StackPanel Orientation="Horizontal">
                            <TextBox Name="Tbox"
                                     BorderThickness="1,1,0,1"
                                     Text="{Binding TextBoxText,
                                                    RelativeSource={RelativeSource TemplatedParent},
                                                    Mode=TwoWay,
                                                    UpdateSourceTrigger=PropertyChanged}" />
                            <Button Width="20"
                                    Background="#FFF0F0F0"
                                    BorderThickness="0,1,1,1"
                                    IsTabStop="False">
                            </Button>
                        </StackPanel>
                    </Border>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

在某个事件中,我获得了Tbox,我需要使用此CustomButton获取Tbox。 对此有何想法?

2 个答案:

答案 0 :(得分:0)

可以通过该控件的TemplatedParent属性。

答案 1 :(得分:0)

自定义控件将作为父级位于Visual Tree中,因此FindAncestor将在此处运行:

Text="{Binding TextBoxText,
               RelativeSource={RelativeSource Mode=FindAncestor, 
                                              AncestorType=local:CustomButton},
               Mode=TwoWay,
               UpdateSourceTrigger=PropertyChanged}" />