Share via


TextValidationBehavior

사용자가 TextValidationBehaviorBehavior 지정된 매개 변수에 따라 지정된 텍스트의 유효성을 검사할 수 있도록 하는 것입니다. 이 동작을 모든 InputView 컨트롤에 추가하면 유효한 텍스트 값 또는 잘못된 텍스트 값이 제공되었는지 여부에 따라 다르게 스타일을 지정할 수 있습니다. 특정 길이에 대한 검사 또는 입력 값이 특정 정규식과 일치하는지 여부와 같은 다양한 기본 제공 검사 제공합니다.

Important

동작을 공유하고 스타일을 통해 여러 컨트롤에 적용할 수 있으므로 .NET MAUI 커뮤니티 도구 키트 동작은 동작을 설정 BindingContext 하지 않습니다. 자세한 내용은 .NET MAUI 동작을 참조 하세요.

구문

다음 예제에서는 입력한 Entry 텍스트의 TextValidationBehavior 길이가 1자에서 10자 사이인지 여부에 따라 해당 텍스트를 추가하고 변경하는 TextColor 방법을 보여 줍니다.

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>

TextValidationBehavior 사용

XAML TextValidationBehavior 에서 다음과 같이 사용할 수 있습니다.

<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.TextValidationBehaviorPage">

    <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:TextValidationBehavior 
                InvalidStyle="{StaticResource InvalidEntryStyle}"
                ValidStyle="{StaticResource ValidEntryStyle}"
                Flags="ValidateOnValueChanged"
                MinimumLength="1"
                MaximumLength="10" />
        </Entry.Behaviors>
    </Entry>

</ContentPage>

C#

TextValidationBehavior C#에서 다음과 같이 사용할 수 있습니다.

class TextValidationBehaviorPage : ContentPage
{
    public TextValidationBehaviorPage()
    {
        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 textValidationBehavior = new TextValidationBehavior
        {
            InvalidStyle = invalidStyle,
            ValidStyle = validStyle,
            Flags = ValidationFlags.ValidateOnValueChanged,
            MinimumLength = 1,
            MaximumLength = 10
        };

        entry.Behaviors.Add(textValidationBehavior);

        Content = entry;
    }
}

C# 태그

CommunityToolkit.Maui.Markup 패키지는 C#에서 이를 Behavior 사용하는 훨씬 더 간결한 방법을 제공합니다.

using CommunityToolkit.Maui.Markup;

class TextValidationBehaviorPage : ContentPage
{
    public TextValidationBehaviorPage()
    {
        Content = new Entry()
            .Behaviors(new TextValidationBehavior
            {
                InvalidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Red),
                ValidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Green),
                Flags = ValidationFlags.ValidateOnValueChanged,
                MinimumLength = 1,
                MaximumLength = 10
            });
    }
}

다음 스크린샷은 Android의 결과 TextValidationBehavior를 보여줍니다. Android의 TextValidationBehavior 스크린샷

속성

속성 Type 설명
DecorationFlags TextDecorationFlags 공백을 처리하는 방법을 설정하는 데 사용할 열거형 값을 제공합니다.
MaximumLength int 허용되는 값의 최대 길이입니다.
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

.NET MAUI 커뮤니티 도구 키트 GitHub 리포지토리에서 오버에 대한 TextValidationBehavior 소스 코드를 찾을 수 있습니다.