WPF-Bindung an eine benutzerdefinierte Eigenschaft in einem benutzerdefinierten Steuerelement

Ich habe ein benutzerdefiniertes Textfeld wie folgt definiert:

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);
    }
}

Ich binde die Custom Text-Eigenschaft in der XAML -

<local:CustomTextBox CustomText="{Binding ViewModelProperty}" />

Das Problem, mit dem ich konfrontiert bin, ist, dass, wenn ich etwas in die CustomTextBox eingebe, die Änderungen nicht in der ViewModelProperty wiedergegeben werden, d. H. Die ViewModelProperty wird nicht aktualisiert. Die CustomTextProperty wird aktualisiert, aber ich nehme an, ich muss etwas extra tun, damit die Bindung auch funktioniert.

Was mache ich nicht Ich würde mich über jede Hilfe freuen.

Vielen Dank

Antworten auf die Frage(1)

Ihre Antwort auf die Frage