Eingabedatenlänge und Zeichen für das Eingabefeld in Xamarin.Forms einschränken
Wie kann ich beschränken, die Länge und die eingegebenen Zeichen in einen Eintrag control in Xamarin.Formen. Brauche ich zum erstellen eines benutzerdefinierten Steuerelements? Gibt es eine Möglichkeit, die ich ableiten kann vom Eintritt (oder ein anderes Steuerelement), so kann ich die notwendigen pro-platform-input-Einschränkungen.
Ein Beispiel wäre ein numerisches Feld, das beschränkt sich auf maximal 3 Zeichen, nur zahlen.
Einstellung des Tastatur-Eigenschaft eines Eintrags Steuerung zur Tastatur.Nur numerisch legt die Tastatur für iOS. Es schränkt nicht den aktuellen text-Eintrag - also ich kann immer noch nicht-Ziffer-Zeichen. Noch sehe ich eine Möglichkeit zur Begrenzung der Länge des Eintrags.
InformationsquelleAutor der Frage Ken K | 2014-08-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schränken Sie die Anzahl der Charaktere in das Eingabefeld ein, wie nachfolgend beschrieben,
InformationsquelleAutor der Antwort Femil Shajin
Ich würde Verhalten verwenden. Mehr darüber: https://developer.xamarin.com/guides/xamarin-forms/behaviors/creating/
Beispiel für Eingabe mit Numerischer Tastatur. Aber es kann verwendet werden, für jede Tastatur.
XAML-Verwendung:
Verhalten
InformationsquelleAutor der Antwort Jana Filipenská
Können Sie einfach Binden;
Zum Beispiel ich möchte eine Zahlung, Wert 100 nicht überschreiten. Also schrieb ich eine Klasse
Damit diese Eigenschaft gesetzt AmountDecimals Wert, wenn der Benutzer einen Wert eingibt, bis es nicht mehr als 100
Dann setzen Sie einfach verbindlich per code auf der Seite-Konstruktor(oder vom xaml)
Damit Benutzer einen numerischen Wert auf den Eintrag, aber wenn er/Sie versucht, geben Sie einen Wert von mehr als 100, - Bindung nur in umgekehrter ihn dem alten Wert. Sie können schreiben Sie einfach Ihren code in Ihre Klasse Eigenschaften wie dieses (über-Setzer). Also, wenn Sie wollen, um eine Eigenschaft zu tragen nur 5 Zeichen, die Sie schreiben können, so etwas wie dieses (codes kann falsch sein, habe ich nicht zusammengestellt Sie 🙂 )
InformationsquelleAutor der Antwort Umut Bebek
Habe ich eine benutzerdefinierte Eingabe-Steuerelement mit Bindbaren Eigenschaften für groß-und maximale Länge.
Control (MyEntry.cs)
Rufen Sie es von xaml wie
InformationsquelleAutor der Antwort user2635746
Definition eines neuen, Benutzerdefinierten Eintrag mit den erforderlichen Eigenschaften:
Und Sie in XAML:
HINWEIS: anstelle der Beseitigung der letzten Zeichen, das der Fall in den meisten Antworten, ist es sicherer, um den text an den alten text, da der Benutzer möglicherweise kopieren/Vergangenheit mehr als ein Zeichen in das Textfeld ein.
InformationsquelleAutor der Antwort A-Sharabiani
Scheint es kein in-built-Eigenschaften zu beschränken Charakter /Länge in der Eintrag Kontrolle. Sie erreichen könnten, sowohl das text-als Begrenzung und Zeicheneingabe über eine der folgenden zwei Methoden zur Verfügung:-
1.) ja - können Sie ergeben sich unmittelbar aus Eintrag Sie erstellen eigene Ableitung dieser aus, und passen Sie es weiter, zum Beispiel einbinden in die TextChanged event-handler. Es ist kein handler für ein-Taste,-drücken, so würden Sie zu tun haben, Ihre überprüfung der Gültigkeit auf dem gesamten übergebenen Werte in e.NewTextValue. Wenn der neue Eintrag nicht übereinstimmen, in Ihren Anforderungen, Sie könnten dann einfach den .Text=e -.OldTextValueum zurück zur letzten gültigen Eintrag.
2) wollte man Haken in die Ereignisprozeduren für die einzelnen Plattform-nativen-Kontrollen können Sie schreiben Sie Ihre eigenen benutzerdefinierten renderer steuert, um eine feinere Steuerung.
InformationsquelleAutor der Antwort Pete
Ich würde auf jeden Fall verwenden Sie eine behvaior für diese
Verwenden Sie dann in xaml wie diese
InformationsquelleAutor der Antwort joacar
Haben Sie einen Blick auf Xamarin Verhalten. Es ist TextChangedBehavior.cs
Sie können eine Vorlage verwenden, die für die Entwicklung eigener Verhaltensweisen gerecht zu werden formatiert, maskierte Eingabefelder. Ich habe entwickelt
FormattedTextChangedBehavior : Behavior<Entry>
für genau diesen Zweck.InformationsquelleAutor der Antwort Mark Carew
Fortsetzung Femil Antwort:
Hier ist ein benutzerdefiniertes Steuerelement für die Begrenzung der Anzahl von Zeichen, aber es kann für alles verwendet werden, die Sie verwenden möchten TextChanged für:
Versuchen Sie nicht, verwenden Sie diese im XAML erhalten Sie ein parser-Fehler, sondern nutzen es in der codebehind:
InformationsquelleAutor der Antwort Paranoid Coder
Können Sie die Filter wie unten in der OnElementChanged Methode aus dem custom renderer
InformationsquelleAutor der Antwort Shyju Madathil
Verwendung:
InformationsquelleAutor der Antwort Artūras Paleičikas
Der beste Weg, um dies zu implementieren, ist die Verwendung von Verhalten, das die Begrenzung der Anzahl von Zeichen eingegeben werden, um Ihren Eintrag zu ignorieren alle weiteren Eingaben, nachdem die max Länge erreicht wurde. Dieser post erklärt, wie dies zu erreichen und auch wie Sie einen Zähler, die anzeigen auf Ihre Nutzer, wie viele Zeichen Sie noch eingeben. dieser Zähler-updates in Echtzeit, wie die Benutzeroberfläche für die Eingabe von Texten. Überprüfen Sie dieser Beitrag für die weitere und sehr ausführliche Informationen über diese.
InformationsquelleAutor der Antwort Damien Doumer