Je crée une zone de texte numérique dans J'ai créé deux Pour le moment, il envoie la notification Toute aide est vraiment appréciée,
Merci p>
3 Réponses :
Utiliser aime plutôt que ceci p> et dans updatedatesTourcetrigger = "explicite" code> dans la liaison et dans
textchanged up thumb up thumb down the
liaison de liaison code>.
Donc, vous écrivez quelque chose comme ceci:
textchanged code> gestionnaire d'événements Mettez à jour la liaison. P>
control.GetBindingExpression(NumericTextBox.TextProperty).UpdateSource();
@Viky merci beaucoup! J'ai oublié que cela a été possible, utilisez l'expression "Control.getBindingExpression (numéritextbox.textProperty) .u pdatesource ();" C'est parfait. Je l'appelle uniquement lorsque l'utilisateur appuie sur les boutons d'augmentation et de diminution et utilisez le comportement normal lors de la modification du texte manuellement.
Pourquoi ne pas simplement utiliser text = "{contraignant YourbindableProperty, mises à jour SontRigger = PropertyChanged}" code>?
Le comportement par défaut de la liaison de la propriété de texte sur un Textbox code> est de mettre à jour sur
lutfocus code>. Vous pouvez modifier cela dans votre contrôle personnalisé en remplaçant les métadonnées sur le
textProperty code> dans votre CTOR statique:
static NumericTextBox()
{
TextProperty.OverrideMetadata(
typeof(NumericTextBox),
new FrameworkPropertyMetadata("", // default value
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault,
null, // property change callback
null, // coercion callback
true, // prohibits animation
UpdateSourceTrigger.PropertyChanged));
}
@Be Merci Abe, très utile mais Viky réponse est plus flexible pour mon cas
Il y a un moyen simple: (je l'ai testé sur la zone de texte).
Bonne chance p> p>
+1. Text = "{Binding MyTextProperty, UpdatesTourceRigger = PropertyChanged}" code> semble être le meilleur moyen d'aller.