WPF: zone de texte pas de tir onTextInput événement
Donc en gros, j'ai un tas de zones de texte que l'utilisateur ait à remplir. J'ai un bouton que je veux garder désactivé jusqu'à ce que toutes les zones de texte ont eu le texte est entré en eux. Voici un exemple de code XAML zone de texte que j'utilise:
<TextBox Name="DelayedRecallScore" TextInput="CheckTextBoxFilled" Width="24" />
Et voici la fonction que j'essaie de déclenchement:
//Disables the OK button until all score textboxes have content
private void CheckTextBoxFilled(object sender, RoutedEventArgs e)
{
/*
foreach (TextBox scorebox in TextBoxList)
{
if (string.IsNullOrEmpty(scorebox.Text))
{
Ok_Button.IsEnabled = false;
return;
}
}
Ok_Button.IsEnabled = true;
*/
MessageBox.Show("THIS MAKES NO SENSE");
}
La MessageBox ne s'affiche pas lorsque TextInput doit être déclenchée. Comme une expérience, j'ai essayé de déclenchement CheckTextBoxFilled() sur PreviewTextInput, et il a bien fonctionné alors, en ce sens que, pour quelque raison que ce soit, la fonction n'est pas appelée. J'ai aussi une fonction de validation qui est déclenché par PreviewTextInput, qui fonctionne comme il se doit. Au début, je pensais PreviewTextInput pourrait en quelque sorte être interférer avec le composant TextInput, j'ai donc pris PreviewTextInput hors de la zone de texte, mais qui n'a pas réussi à résoudre quoi que ce soit. Je suis complètement déconcerté par pourquoi cela pourrait se produire, de sorte que toute aide serait appréciée.
OriginalL'auteur Kay Ell | 2009-09-03
Vous devez vous connecter pour publier un commentaire.
Votre gestionnaire pour l'
TextInput
événement n'est pas déclenché, car laTextBox
est de la manipulation de l'événement. Vous pouvez essayer d'utiliser le TextChanged de l'événement au lieu de cela, car vraiment vous voulez juste pour savoir quand les personnages ont été ajoutés ou supprimés de laTextBox
.WPF vraiment fait comme pour faire ce que devrait être tout simplement des tâches trop difficiles. Je veux dire, pourquoi exposer un événement si il ne sera jamais le feu? Ridicule... oui, je suis d'évacuation 😀
FWIW, si vous sous-classe de zone de texte, vous pouvez gérer l'événement. Mais je vois votre point de vue, cependant.
Oui, il y a toujours une solution, et en général j'ai comme WPF, j'ai juste été mordu tant de fois par ce que devraient être les choses simples, faites trop difficile par le cadre de ce projet récent que je suis un peu amer.
OriginalL'auteur Andy
OriginalL'auteur Lavesh
Utiliser "PreviewTextInput" au lieu de cela, il fonctionne.
OriginalL'auteur Rankit
Créer une nouvelle classe dérivée de zone de texte. Dans la nouvelle classe remplacer la OnTextInput méthode. Votre OnTextInput méthode sera appelée avant la zone de texte.
OriginalL'auteur user3801831