Validierung in der textbox in WPF
Ich arbeite gerade an einer WPF-Anwendung, wo ich gerne ein TextBox
können nur numerische Eingaben. Ich weiß, dass ich überprüfen kann, ob der Inhalt, wenn ich verloren den Fokus und die Inhalte sperren von numerischen, aber in anderen Windows Form-Anwendung, die wir benutzen, um völlig blockiert alle Eingaben, die von numerischen aufgeschrieben. Plus, die wir verwenden, um diesen code in einer separaten dll zu verweisen, an vielen stellen.
Hier ist der code, der im Jahr 2008 nicht mit 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
Gibt es eine entsprechende Möglichkeit in WPF? Ich hätte nichts dagegen, wenn dies in einem Stil, aber ich bin neu in WPF so Stil sind ein bisschen dunkel, was Sie können oder nicht tun können.
InformationsquelleAutor David Brunelle | 2009-08-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie beschränken Sie die Eingabe auf nur zahlen mit einer angefügten Eigenschaft auf der TextBox. Definieren Sie die angefügte Eigenschaft einmal (auch in einer separaten dll) und verwenden Sie es auf ein beliebiges Textfeld. Hier ist die angefügte Eigenschaft:
Hier ist, wie Sie es verwenden (ersetzen Sie "steuert" mit Ihrem eigenen Namensraum):
Habe vergessen zu erwähnen, es ist die max Länge eines schwimmenden Anzahl (maximale Anzahl der Dezimalstellen und die Anzahl der integer-Teil )
Ja, angefügte Eigenschaften sind sehr leistungsfähig und erlaubt Ihnen das hinzufügen alle Arten von Verhaltensweisen.
+1 - Sehr schön!
+1 meine erste angefügte Eigenschaften codiert, wie du gesagt hast! Danke!
InformationsquelleAutor John Myczek
Kann man sich die Validierung in Ihrer Bindung
Blick auf dieses Beispiel (von meinem Programm), setzen Sie die überprüfung innerhalb der verbindlich wie diese. Mit UpdateSourceTrigger können Sie ändern, wenn Sie verbindlich aktualisiert wird (den Fokus verloren, in jedem ändern...)
Gut, die Validierung ist eine Klasse, werde ich Ihnen ein Beispiel:
Kurz gesagt, die Arbeit zu tun im inneren, die Methode und geben Sie einen neuen ValidationResult. Der erste parameter ist ein boolescher Wert, der true ist, wenn die Validierung gut ist, false, wenn nicht. Der zweite parameter wird nur eine Nachricht für Informationen.
Ich denke, dass dies die Grundlagen des Textfeld-Validierung.
Hoffe, dass dies helfen.
EDIT: Sorry, ich weiß nicht, VB.NET aber ich denke, dass der C# code ist ziemlich einfach.
InformationsquelleAutor Jesus Rodriguez