日期:2014-05-20  浏览次数:21310 次

WPF自定义控件中,自定义属性的绑定。
我想在WPF中做一个自定义控件,其中有一个自定义属性HelpText,在主界面用此控件时,指定HelpText的值,然后自定义控件绑定此值,显示出来。
自定义控件:
public class TextBoxEx : TextBox
    {
        static TextBoxEx()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(TextBoxEx), new FrameworkPropertyMetadata(typeof(TextBoxEx)));
            HelpTextProperty = DependencyProperty.Register("HelpText", typeof(string), typeof(TextBoxEx),
   new FrameworkPropertyMetadata("请您输入..", new PropertyChangedCallback(OnHelpTextChanged)));
        }
        public static DependencyProperty HelpTextProperty;
        public string HelpText
        {
            get { return (string)GetValue(HelpTextProperty); }
            set { SetValue(HelpTextProperty, value); }
        }
        private static void OnHelpTextChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
        {

        }
    }

下面是自定义控件的xaml代码,我用了好几种,怎么也绑定不了从使用控件的主界面发回来的HelpText属性:
1.<TextBlock Text="{Binding  Path=HelpText}"/>
2.<TextBlock Text="{TemplateBinding HelpText}"/>
3. <TextBlock Text="{Binding Path=HelpText,  RelativeSource={RelativeSource TemplatedParent}}"/>
经测试如果把上面绑定化为固定值,正常运行,隐藏代码中回调函数可以证明HelpText传参无错误。
请问如何绑定??

------解决方案--------------------
“从使用控件的主界面发回来的HelpText属性”

看不懂。你需要解释这个小“界面”的架构。