Ich arbeite derzeit an einer WPF-Anwendung, wo ich eine TextBox
haben möchte, die nur numerische Einträge darin haben kann. Ich weiß, dass ich den Inhalt davon validieren kann, wenn ich den Fokus verliere und den Inhalt davon verbiete, numerisch zu sein, aber in anderen Windows Form-Anwendungen blockieren wir jede Eingabe, außer dass Zahlen notiert werden. Außerdem verwenden wir diesen Code in einer separaten DLL, um ihn an vielen Stellen zu referenzieren.Validierung in Textfeld in WPF
Hier wird der Code im Jahr 2008 mit WPF nicht:
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
Gibt es ein Äquivalent Weg in WPF? Es würde mir nichts ausmachen, wenn dies in einem Stil ist, aber ich bin neu in WPF, so dass Stil etwas unklar ist, was sie tun können oder nicht können.
Ich werde das versuchen. Ich stelle mir vor, dass ich so etwas praktisch hinzufügen kann. Zum Beispiel, die maximale Länge des Textes im Inneren, das ist auch ein anderes Problem, das ich hatte. –
Vergessen zu erwähnen, es ist die maximale Länge einer Gleitzahl (die maximale Anzahl der Dezimalstellen und die maximale Anzahl der Ganzzahl) –
Ja, angefügte Eigenschaften sind sehr mächtig und erlaubt Ihnen, alle Arten von Verhaltensweisen hinzuzufügen. –