“UpdateSourceTrigger=PropertyChanged” équivalent pour Windows Phone 7 zone de texte
Est-il un moyen d'obtenir une zone de texte dans Windows Phone 7 pour mettre à jour la Liaison que l'utilisateur tape chaque lettre plutôt qu'après la perte de l'accent?
Comme suit WPF zone de texte ferait:
<TextBox Text="{Binding Path=TextProperty, UpdateSourceTrigger=PropertyChanged}"/>
- +1 pour demander à l'un des plus commun WP problèmes
- Et toujours pas de WP8 🙁
Vous devez vous connecter pour publier un commentaire.
Silverlight pour WP7 ne prend pas en charge la syntaxe que vous avez énumérées. Procédez de la manière suivante à la place:
En C#:
J'ai comme l'utilisation d'une propriété attachée. Juste au cas où vous êtes dans une de ces petites fripouilles.
Et puis le code de soutien.
<toolkit:PhoneTextBox Hint="Last 10 Digit Card Number" Grid.Row="0" InputScope="Number" MaxLength="10" DisplayedMaxLength="10" Text="{Binding CardNumber,Mode=TwoWay}" ActionIcon="/Assets/Help.png" helpers:BindingUtility.UpdateSourceOnChange="True" KeyDown="PhoneTextBox_KeyDown"/>
cela a des problèmes , on dirait que le curseur va à premier élément quand j'ai appuyer sur la touche 0Pas par le biais de la syntaxe de liaison, non, mais il est assez facile sans. Vous avez à gérer l'événement TextChanged et appel UpdateSource sur la liaison.
Cela peut être converti en un comportement attaché à ainsi assez facilement.
Dans l'événement TextChanged appel UpdateSource().
Vous pouvez écrire votre propre zone de texte de Comportement de la poignée de mise à Jour sur TextChanged:
C'est mon échantillon de PasswordBox, mais vous pouvez le simple changement de gérer les biens de l'un quelconque objet.
L'utilisation:
UpdateSourceTrigger=Explicite ne marche pas pour moi, d'où Im à l'aide personnalisée classe dérivant de zone de texte
C'est juste une ligne de code!
Vous pouvez créer un générique événement TextChanged (par exemple "ImmediateTextBox_TextChanged") dans le code de ta page, et de l'associer à une zone de texte dans la page.
J'ai pris Praetorian réponse et fait une extension de la classe qui hérite de
TextBox
de sorte que vous n'avez pas à sortir de votre vue du code derrière ce comportement.C-Sharp:
VisualBasic:
Ensuite appeler comme ça dans XAML: