Je travaille actuellement sur une application WPF où j'aimerais avoir un TextBox
qui ne peut contenir que des entrées numériques. Je sais que je peux valider le contenu quand j'ai perdu le focus et bloquer le contenu d'être numérique, mais dans d'autres applications Windows Form, nous bloquons totalement toute entrée sauf numérique d'être écrite. De plus, nous utilisons pour mettre ce code dans une DLL distincte pour le référencer dans de nombreux endroits.Validation dans la zone de texte dans WPF
Voici le code en 2008 n'utilisent pas WPF:
Public Shared Sub BloquerInt(ByRef e As System.Windows.Forms.KeyPressEventArgs, ByRef oTxt As Windows.Forms.TextBox, ByVal intlongueur As Integer)
Dim intLongueurSelect As Integer = oTxt.SelectionLength
Dim intPosCurseur As Integer = oTxt.SelectionStart
Dim strValeurTxtBox As String = oTxt.Text.Substring(0, intPosCurseur) & oTxt.Text.Substring(intPosCurseur + intLongueurSelect, oTxt.Text.Length - intPosCurseur - intLongueurSelect)
If IsNumeric(e.KeyChar) OrElse _
Microsoft.VisualBasic.Asc(e.KeyChar) = System.Windows.Forms.Keys.Back Then
If Microsoft.VisualBasic.AscW(e.KeyChar) = System.Windows.Forms.Keys.Back Then
e.Handled = False
ElseIf strValeurTxtBox.Length < intlongueur Then
e.Handled = False
Else
e.Handled = True
End If
Else
e.Handled = True
End If
est-il un moyen équivalent en WPF? Cela ne me dérangerait pas si c'est dans un style mais je suis nouveau à WPF donc le style est un peu obscur à ce qu'ils peuvent ou ne peuvent pas faire.
Je vais essayer ça. J'imagine que je peux pratiquement ajouter quelque chose comme ça. Par exemple, la longueur maximale du texte à l'intérieur, ce qui est aussi un autre problème que j'avais. –
Oublié de mentionner, c'est la longueur maximale d'un nombre flottant (le nombre maximum de nombre décimal et maximum de la partie entière) –
Oui, les propriétés attachées sont très puissantes et vous permettent d'ajouter tous les types de comportements. –