通过xaml创建一些属性设置自定义控件

时间:2015-08-23 17:53:11

标签: c# wpf

我创建了一个自定义控件,派生自UserControl,它有一个文本块,一个文本框和2个按钮,名为PathMng。

<Grid>
    <!-- some other stuff -->
    <TextBlock Name="PathName">Name</TextBlock>
</Grid>

我正在尝试通过调用此控件的外部xaml设置TextBlock的文本

<Grid>
    <local:PathMng>NameHere</local:PathMng>
</Grid>

但我无法理解如何将文本“NameHere”绑定到TextBlock。

我试着搜索“自定义xaml”,“模板xaml”或者可能太多的通用词,但我找不到我需要的东西

提前感谢您提供任何帮助

1 个答案:

答案 0 :(得分:1)

首先,为了使您更简单,请使用,例如:

进行设置
<local:PathMng MyText="NameHere"/>

现在,在您的用户控件代码隐藏中,创建一个依赖项属性:

    public string MyText
    {
        get { return (string)GetValue(MyTextProperty); }
        set { SetValue(MyTextProperty, value); }
    }

    public static readonly DependencyProperty MyTextProperty =
        DependencyProperty.Register("MyText", typeof(string), typeof(UserContrrol1), new PropertyMetadata(null));

最后,在UserControl1 XAML中,将TextBox的Text属性绑定到此DP:

<TextBox Text="{Binding MyText, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:UserControl1}}}" />

所有这些都假定您的用户控件名为UserControl1