EmailValidationBehavior
EmailValidationBehavior
es un Behavior
que permite a los usuarios determinar si la entrada de texto es una dirección de correo electrónico válida o no. Por ejemplo, un control Entry
puede tener un estilo diferente en función de si se proporciona una dirección de correo electrónico válida o no válida. La validación se logra mediante una expresión regular que se usa para comprobar si la entrada de texto es una dirección de correo electrónico válida o no.
Cuando se adjunta a un InputView
(por ejemplo, Entry
, Editor
, etc.), EmailValidationBehavior
cambiará el teclado predeterminado, Keyboard.Default
, a Keyboard.Email
. Si se ha especificado un Keyboard
no predeterminado para el InputView
, EmailValidationBehavior
no cambiará el Keyboard
.
Cuando se desasocie de un InputView
, EmailValidationBehavior
cambiará Keyboard.Email
de nuevo a Keyboard.Default
. Si se ha especificado un Keyboard
distinto de Keyboard.Email
para el InputView
, EmailValidationBehavior
, no cambiará el Keyboard
al desasociar.
Importante
Los comportamientos del kit de herramientas de la comunidad .NET MAUI no establecen el elemento BindingContext
de un comportamiento, ya que los comportamientos se pueden compartir y aplicar a varios controles a través de estilos. Para más información, consulte comportamientos de .NET MAUI
Sintaxis
En los ejemplos siguientes se muestra cómo agregar el EmailValidationBehavior
a un Entry
y cambiar el TextColor
en función de si el texto especificado es una dirección de correo electrónico válida.
XAML
Incluir el espacio de nombres XAML
Para usar el kit de herramientas en XAML, es necesario agregar el siguiente xmlns
a la página o vista:
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Por lo tanto, el siguiente:
<ContentPage
x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
</ContentPage>
Se modificaría para incluir el xmlns
de la siguiente manera:
<ContentPage
x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit">
</ContentPage>
Uso de EmailValidationBehavior
El EmailValidationBehavior
se puede usar de la siguiente manera en XAML:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
x:Class="CommunityToolkit.Maui.Sample.Pages.Behaviors.EmailValidationBehaviorPage">
<ContentPage.Resources>
<Style x:Key="InvalidEntryStyle" TargetType="Entry">
<Setter Property="TextColor" Value="Red" />
</Style>
<Style x:Key="ValidEntryStyle" TargetType="Entry">
<Setter Property="TextColor" Value="Green" />
</Style>
</ContentPage.Resources>
<Entry>
<Entry.Behaviors>
<toolkit:EmailValidationBehavior
InvalidStyle="{StaticResource InvalidEntryStyle}"
ValidStyle="{StaticResource ValidEntryStyle}"
Flags="ValidateOnValueChanged" />
</Entry.Behaviors>
</Entry>
</ContentPage>
C#
El EmailValidationBehavior
se puede usar de la siguiente manera en C#:
class EmailValidationBehaviorPage : ContentPage
{
public EmailValidationBehaviorPage()
{
var entry = new Entry();
var validStyle = new Style(typeof(Entry));
validStyle.Setters.Add(new Setter
{
Property = Entry.TextColorProperty,
Value = Colors.Green
});
var invalidStyle = new Style(typeof(Entry));
invalidStyle.Setters.Add(new Setter
{
Property = Entry.TextColorProperty,
Value = Colors.Red
});
var emailValidationBehavior = new EmailValidationBehavior
{
InvalidStyle = invalidStyle,
ValidStyle = validStyle,
Flags = ValidationFlags.ValidateOnValueChanged
};
entry.Behaviors.Add(emailValidationBehavior);
Content = entry;
}
}
Marcado de C#
Nuestro paquete CommunityToolkit.Maui.Markup
proporciona una forma mucho más concisa de usar este Behavior
en C#.
using CommunityToolkit.Maui.Markup;
class EmailValidationBehaviorPage : ContentPage
{
public EmailValidationBehaviorPage()
{
Content = new Entry()
.Behaviors(new EmailValidationBehavior
{
InvalidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Red),
ValidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Green),
Flags = ValidationFlags.ValidateOnValueChanged
});
}
}
En la siguiente captura de pantalla se muestra el objeto EmailValidationBehavior resultante en Android:
Propiedades
Propiedad | Tipo | Descripción |
---|---|---|
DecorationFlags |
TextDecorationFlags |
Proporciona un valor enumerado que se usará para establecer cómo controlar los espacios en blanco. |
MaximumLength |
int |
Longitud máxima del valor que se permitirá. |
MinimumLength |
int |
Longitud mínima del valor que se permitirá. |
RegexOptions |
RegexOptions |
Proporciona valores enumerados que se pueden utilizar para establecer las opciones de expresión regular. |
RegexPattern |
string |
Patrón de expresión regular con la que el valor tendrá que coincidir antes de que se permita. |
Propiedades ValidationBehavior
Las siguientes propiedades se implementan en la clase base, public abstract class ValidationBehavior
:
Propiedad | Tipo | Descripción |
---|---|---|
Flags |
ValidationFlags |
Proporciona un valor enumerado que especifica cómo controlar la validación. |
ForceValidateCommand |
ICommand |
Permite al usuario proporcionar un ICommand personalizado que controle la validación. |
InvalidStyle |
Style |
Style que se va a aplicar al elemento cuando se produce un error en la validación. |
IsNotValid |
bool |
Indica si el valor actual se considera o no válido. |
IsRunning |
bool |
Indica si la validación está en curso ahora (esperando que finalice una llamada asincrónica). |
IsValid |
bool |
Indica si el valor actual se considera válido o no. |
ValidStyle |
Style |
Style que se va a aplicar al elemento cuando la validación se realiza correctamente. |
Value |
object |
El valor que se va a validar. |
ValuePropertyName |
string |
Permite al usuario invalidar la propiedad que se usará como valor para validar. |
Métodos
método | Descripción |
---|---|
EmailRegex (estático) | Un GeneratedRegex para que coincida con una entrada es una dirección de correo electrónico válida. |
EmailDomainRegex (estático) | Un GeneratedRegex para que coincida con el dominio de una dirección de correo electrónico. |
Ejemplos
Puede encontrar un ejemplo de este comportamiento en acción en la Aplicación de muestra del kit de herramientas de la comunidad de .NET MAUI.
API
Puede encontrar el código fuente de EmailValidationBehavior
en el repositorio de GitHub del Kit de herramientas de la comunidad de .NET MAUI.
.NET MAUI Community Toolkit