我有一个自定义文本框,定义如下:
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);
}
}
我在 XAML 中绑定自定义文本属性 -
<local:CustomTextBox CustomText="{Binding ViewModelProperty}" />
我面临的问题是,当我在 CustomTextBox 中输入任何内容时,更改不会反映在 ViewModelProperty 中,即 ViewModelProperty 没有得到更新。CustomTextProperty 正在更新,但我想我需要做一些额外的事情来使绑定也能正常工作。
我不做什么?我将不胜感激有关此的任何帮助。
谢谢