私はXAML
にユーザ名とパスワードの2つの入力フィールドを作成しました。xamarinを使用して、文字列のいずれかがパスワードフィールドから削除された場合のエラーメッセージの表示方法を教えてください。
たとえば、パスワードフィールドに[email protected]
のようなパスワードを指定しています。パスワードフィールドから(@、A、1)のような文字列を削除すると、エラーがラベルに表示されます。ここで
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:LoginUser"
x:Class="LoginUser.MainPage">
<StackLayout Spacing="20" Padding="50" VerticalOptions="Center">
<Entry x:Name="txtUsername" Placeholder="Username"></Entry>
<Entry x:Name="txtPassword" Placeholder="Password" IsPassword="True">
<Entry.Behaviors>
<local:ValidationBehavior x:Name="passwordValidator"/>
</Entry.Behaviors>
</Entry>
<Button Text="Log In" TextColor="White" BackgroundColor="##ff77D065" Clicked="Button_Onclick"></Button>
</StackLayout>
</ContentPage>
HandleTextChanged
イベントCSファイルのコードです:ここで
はXAML
コードです
public class ValidationBehavior: Behavior<Entry>
{
const string pwRegex = @"^(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$";
protected override void OnAttachedTo(Entry bindable)
{
bindable.TextChanged += HandleTextChanged;
base.OnAttachedTo(bindable);
}
void HandleTextChanged(object sender, TextChangedEventArgs e)
{
bool IsValid = false;
IsValid = (Regex.IsMatch(e.NewTextValue, pwRegex,RegexOptions.IgnoreCase));
((Entry)sender).TextColor = IsValid ? Color.Default : Color.Red;
Label errorLabel = ((Entry)sender).FindByName<Label>("errorMessage");
if (IsValid)
{
errorLabel.Text = "Please enter the correct password";
}
else
{
errorLabel.Text = "";
}
}
protected override void OnDetachingFrom(Entry bindable)
{
bindable.TextChanged -= HandleTextChanged;
base.OnDetachingFrom(bindable);
}
}
あなたはこの質問のいくつかのバリエーションを尋ねました** 5回**過去2日間。同じ質問の再掲載をやめてください。 – Jason