WPF: zone de texte Texte n'est pas mise à jour

J'ai un contrôle utilisateur que j'utilise à l'intérieur d'un DataTemplate, ce UserControl contient un TextBox qui est lié avec Valeur propriété(déclaré comme un DependencyProperty) de mon UserControl. Dans le modèle de données-je lier cette Valeur bien avec ma réelle de la propriété dire Nom (également un DependencyProperty). Il fonctionne correctement, je assigner une valeur à Nom de la propriété pendant le chargement et mon TextBox l'affiche, je change la valeur de TextBox et de la mise à jour de mon Nom bien aussi.
Maintenant, le problème vient alors que j'ai ajouter un PropertyChangedEventHandler dans la propriété de dépendance, j'ai le contrôle de la valeur si elle est valide, ne rien faire si elle est valable et affecter l'ancienne valeur si pas valide. Dans le cas d'une valeur non valide, quand je l'affecter que l'ancienne valeur, la propriété des mises à jour mais il n'est pas de l'affichage de la valeur mise à jour dans mon TextBox de UserControl. Quelqu'un peut me dire pourquoi?

XAML de mon UserControl:

<UserControl x:Name="usercontrol">
   <StackPanel>
      <TextBlock ......./>
      <TextBox Binding={Binding ElementName=usercontrol, Path=Value, Mode=TwoWay}/>
   </StackPanel>
</UserControl>

Dans le code derrière Valeur est un DependencyProperty

J'utilise dans mon DataTemplate:

<HierarchicalDataTemplate DataType="{x:Type myLib:myClass}" ItemsSource="{Binding Children}">
    <Expander Header="{Binding}">
        <WrapPanel>
            <edproperty:TextPropertyEditor Caption="Name" Value="{Binding Name, Mode=TwoWay}"/>
            <edproperty:TextPropertyEditor .................../>
            <edproperty:TextPropertyEditor .................../>
            <edproperty:TextPropertyEditor ...................../>
        </WrapPanel>
    </Expander>
</HierarchicalDataTemplate>

Ce modèle, je suis en utilisant dans un TreeView. À l'intérieur de TreeView je entrer une valeur dans le TextBox qui met à jour les Valeur propriété de mon UserControl, qui à son tour les mises à jour Nom propriété de myClass je suis l'affectation d'un PropertyChangedCallback à mon Nom Propriété dans myClass, de l'exécution de certains de validation et de réaffecter le OldValue si la validation échoue. À tour de rôle, des mises à jour Valeur bien aussi, mais je suis toujours de voir que le TextBox a la même valeur que je suis entré plus tôt pas la mise à jour.

public string Name
    {
        get
        {
            return (string)GetValue(NameProperty);
        }
        set
        {
            SetValue(NameProperty, value);
        }
    }

    //Using a DependencyProperty as the backing store for Name.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty NameProperty =
        DependencyProperty.Register("Name", typeof(string), typeof(myClass), new UIPropertyMetadata(null, OnNameChanged));

    protected static void OnNameChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args)
    {
        if(checkRequired && !IsValid(e.NewValue.ToString()))
        {
            checkRequired=false;
            (sender as myClass).Name = args.OldValue.ToString();
        }
    }

    private static bool IsValid(string name)
    {
         .............some logic here
    }
Sans voir ton code, cela va être difficile de bien des commentaires. Pourriez-vous poster votre code s'il vous plaît?
c'en est trop, il ne peut pas être affiché. Vous pouvez demander si vous voulez plus d'explications.
Non, vous pouvez écrire le code minimal morceau à reproduire... Sinon, nous serons deviner, pas de réponse. Personne n'aime l'incertitude. En particulier les programmeurs..

OriginalL'auteur viky | 2009-10-30