WPF Liaison à une propriété personnalisée dans un contrôle personnalisé

J'ai une zone de texte personnalisé défini comme suit:

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

Je suis la liaison du Texte Personnalisé à la propriété dans le code XAML -

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

Le problème que je me pose, c'est que quand j'ai rien entrer dans le CustomTextBox, les modifications ne sont pas répercutées dans le ViewModelProperty c'est à dire la ViewModelProperty n'est pas mis à jour. Le CustomTextProperty est d'obtenir des mises à jour mais je suppose que j'ai besoin de faire quelque chose de plus pour faire la liaison.

Que suis-je pas en train de faire? Je vous serais reconnaissant de toute aide à ce sujet.

Merci

Ce que vous essayez d'accomplir avec le PropertyChanged de rappel? Pour moi, il semble, comme vous venez de définir une nouvelle valeur, c'est pourquoi ce rappel a été appelé, une fois encore, qui heureusement est piégé par wpf sinon vous auriez une boucle sans fin.

OriginalL'auteur Duke Cyrillus | 2013-01-31