相关疑难解决方法(0)

WPF绑定到自定义控件中的自定义属性

我有一个自定义文本框定义如下:

public class CustomTextBox : TextBox
{
    public static DependencyProperty CustomTextProperty = 
             DependencyProperty.Register("CustomText", typeof(string), 
             typeof(CustomTextBox));

    static CustomTextBox()
    {
        TextProperty.OverrideMetadata(typeof(SMSTextBox),
                      new FrameworkPropertyMetadata(string.Empty,
                      FrameworkPropertyMetadataOptions.Journal |
                          FrameworkPropertyMetadataOptions.BindsTwoWayByDefault,
                      new PropertyChangedCallback(CustomTextBox_OnTextPropertyChanged));
    }

    public string CustomText
    {
        get { return (string)GetValue(CustomTextProperty); }
        set { SetValue(CustomTextProperty, value); }
    }

    private static void CustomTextBox_OnTextPropertyChanged(DependencyObject d,
                     DependencyPropertyChangedEventArgs e)
    {
        CustomTextBox customTextBox = d as CustomTextBox;

        customTextBox.SetValue(CustomTextProperty, e.NewValue);
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在绑定XAML中的自定义文本属性 -

<local:CustomTextBox CustomText="{Binding ViewModelProperty}" />
Run Code Online (Sandbox Code Playgroud)

我面临的问题是,当我在CustomTextBox中输入任何内容时,更改不会反映在ViewModelProperty中,即ViewModelProperty没有得到更新.CustomTextProperty正在更新,但我想我需要做一些额外的事情来使绑定工作.

我不做什么?我将不胜感激任何帮助.

谢谢

wpf binding

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

binding ×1

wpf ×1