CharactersValidationBehavior

Это CharactersValidationBehavior позволяет Behavior пользователю проверять ввод текста в зависимости от указанных параметров. Например, элемент управления может быть стилирован по-разному в зависимости от того, Entry предоставляется ли допустимое или недопустимое текстовое значение. Это поведение включает встроенные проверка, например проверка для определенного количества цифр или буквенно-цифровых символов.

Внимание

Поведение сообщества .NET MAUI набор средств не задает BindingContext поведение, так как поведение можно совместно использовать и применять к нескольким элементам управления с помощью стилей. Дополнительные сведения см. в статье о поведении .NET MAUI

Синтаксис

В следующих примерах показано, как добавить CharactersValidationBehavior его Entry и изменить TextColor на основе того, содержит ли введенный текст только числа и имеет не менее 2 чисел.

XAML

Включение пространства имен XAML

Чтобы использовать набор средств в XAML, xmlns необходимо добавить на страницу или представление следующее:

xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"

Поэтому следующее:

<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>

Будет изменено, чтобы включить следующее xmlns :

<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>

Использование CharactersValidationBehavior

Его CharactersValidationBehavior можно использовать следующим образом в 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.CharactersValidationBehaviorPage">

    <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:CharactersValidationBehavior 
                InvalidStyle="{StaticResource InvalidEntryStyle}"
                ValidStyle="{StaticResource ValidEntryStyle}"
                Flags="ValidateOnValueChanged"
                CharacterType="Digit"
                MinimumCharacterTypeCount="3" />
        </Entry.Behaviors>
    </Entry>

</ContentPage>

C#

Его CharactersValidationBehavior можно использовать следующим образом в C#:

class CharactersValidationBehaviorPage : ContentPage
{
    public CharactersValidationBehaviorPage()
    {
        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 charactersValidationBehavior = new CharactersValidationBehavior
        {
            InvalidStyle = invalidStyle,
            ValidStyle = validStyle,
            Flags = ValidationFlags.ValidateOnValueChanged,
            CharacterType = CharacterType.Digit,
            MinimumCharacterTypeCount = 3
        };

        entry.Behaviors.Add(charactersValidationBehavior);

        Content = entry;
    }
}

Разметка C#

Наш CommunityToolkit.Maui.Markup пакет предоставляет гораздо более краткий способ использования этого Behavior в C#.

using CommunityToolkit.Maui.Markup;

class CharactersValidationBehaviorPage : ContentPage
{
    public CharactersValidationBehaviorPage()
    {
        Content = new Entry()
            .Behaviors(new CharactersValidationBehavior
            {
                InvalidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Red),
                ValidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Green),
                Flags = ValidationFlags.ValidateOnValueChanged,
                CharacterType = CharacterType.Digit,
                MinimumCharacterTypeCount = 3
            });
    }
}

На следующем снимках экрана показан полученный символ символовValidationBehavior на Android: Снимок экрана: CharactersValidationBehavior на Android

Свойства

Свойство Type Описание
CharacterType CharacterType Предоставляет перечисленное значение, используемое для настройки обработки сравнений.
DecorationFlags TextDecorationFlags Предоставляет перечисленное значение, используемое для задания обработки пробелов.
MaximumCharacterTypeCount int Максимальное количество символов, необходимых CharacterType .
MaximumLength int Максимальная длина допустимого значения.
MinimumCharacterTypeCount int Минимальное количество символов, необходимое CharacterType .
MinimumLength int Минимальная длина допустимого значения.
RegexOptions RegexOptions Предоставляет перечисленные значения для использования при задании параметров регулярных выражений.
RegexPattern string Шаблон регулярного выражения, который будет соответствовать значению, прежде чем он будет разрешен.

Свойства ValidationBehavior

Следующие свойства реализуются в базовом классе: public abstract class ValidationBehavior

Свойство Type Описание
Flags ValidationFlags Предоставляет перечисленное значение, указывающее способ обработки проверки.
ForceValidateCommand ICommand Позволяет пользователю предоставлять пользователь ICommand , который обрабатывает принудительное выполнение проверки.
InvalidStyle Style При Style сбое проверки применяется к элементу.
IsNotValid bool Указывает, считается ли текущим значение недопустимым.
IsRunning bool Указывает, выполняется ли проверка сейчас (ожидание асинхронного вызова).
IsValid bool Указывает, считается ли текущим значение допустимым.
ValidStyle Style Применяется Style к элементу при успешной проверке.
Value object Проверяемое значение.
ValuePropertyName string Позволяет пользователю переопределить свойство, которое будет использоваться в качестве значения для проверки.

Примеры

Пример этого поведения можно найти в действии в сообществе .NET MAUI набор средств пример приложения.

API

Исходный код CharactersValidationBehavior можно найти в репозитории сообщества .NET MAUI набор средств GitHub.