Here’s a quick one on how to restrict the number of characters a user can enter in an Entry
. Basically, we are going to create a custom Behavior
and then apply it to our Entry
.
EntryLengthValidatorBehavior.cs
/// <summary> /// Behavior that restricts the length of an entry /// </summary> public class EntryLengthValidatorBehavior : Behavior<Entry> { public int MaxLength { get; set; } protected override void OnAttachedTo(Entry bindable) { base.OnAttachedTo(bindable); bindable.TextChanged += OnEntryTextChanged; } protected override void OnDetachingFrom(Entry bindable) { base.OnDetachingFrom(bindable); bindable.TextChanged -= OnEntryTextChanged; } void OnEntryTextChanged(object sender, TextChangedEventArgs e) { var entry = (Entry)sender; if (entry.Text.Length > this.MaxLength) { string entryText = entry.Text; entry.TextChanged -= OnEntryTextChanged; entry.Text = e.OldTextValue; entry.TextChanged += OnEntryTextChanged; } } }
Now we can apply it in our Xaml:
<Entry x:Name="Pin1" TextColor="White"> <Entry.Behaviors> <behaviors:EntryLengthValidatorBehavior MaxLength="4"/> </Entry.Behaviors> </Entry>
If you like what you see, don’t forget to follow me on twitter @Suave_Pirate, check out my GitHub, and subscribe to my blog to learn more mobile developer tips and tricks!
great issues altogether, you just gained a new reader.
What could you recommend about your post that you simply made a few
days in the past? Any positive?
LikeLike