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