Udostępnij za pośrednictwem


UriValidationBehavior

Jest UriValidationBehavior to element Behavior , który umożliwia użytkownikom określenie, czy wprowadzanie tekstu jest prawidłowym identyfikatorem URI. Na przykład kontrolka Entry może być stylizowany inaczej w zależności od tego, czy podano prawidłowy, czy nieprawidłowy identyfikator URI.

Ważne

Zachowania zestawu narzędzi .NET MAUI Community Toolkit nie ustawiają BindingContext zachowania, ponieważ zachowania mogą być współużytkowane i stosowane do wielu kontrolek za pomocą stylów. Aby uzyskać więcej informacji, zobacz Zachowania maUI platformy .NET

Składnia

W poniższych przykładach pokazano, jak dodać element UriValidationBehavior do elementu Entry i zmienić TextColor element na podstawie tego, czy wprowadzony tekst jest prawidłowym bezwzględnym identyfikatorem URI.

XAML

Dołączanie przestrzeni nazw XAML

Aby można było używać zestawu narzędzi w języku XAML, należy dodać następujące xmlns elementy do strony lub widoku:

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

W związku z tym następujące elementy:

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

Zostanie zmodyfikowana tak, aby zawierała następujące xmlns elementy:

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

Korzystanie z elementu UriValidationBehavior

Można UriValidationBehavior go użyć w następujący sposób w języku 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.UriValidationBehaviorPage">

    <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:UriValidationBehavior 
                InvalidStyle="{StaticResource InvalidEntryStyle}"
                ValidStyle="{StaticResource ValidEntryStyle}"
                Flags="ValidateOnValueChanged"
                UriKind="Absolute" />
        </Entry.Behaviors>
    </Entry>

</ContentPage>

C#

Można UriValidationBehavior go użyć w następujący sposób w języku C#:

class UriValidationBehaviorPage : ContentPage
{
    public UriValidationBehaviorPage()
    {
        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 uriValidationBehavior = new UriValidationBehavior
        {
            InvalidStyle = invalidStyle,
            ValidStyle = validStyle,
            Flags = ValidationFlags.ValidateOnValueChanged,
            UriKind = UriKind.Absolute
        };

        entry.Behaviors.Add(uriValidationBehavior);

        Content = entry;
    }
}

Znaczniki języka C#

Nasz CommunityToolkit.Maui.Markup pakiet zapewnia znacznie bardziej zwięzły sposób korzystania z niego Behavior w języku C#.

using CommunityToolkit.Maui.Markup;

class UriValidationBehaviorPage : ContentPage
{
    public UriValidationBehaviorPage()
    {
        Content = new Entry()
            .Behaviors(new UriValidationBehavior
            {
                InvalidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Red),
                ValidStyle = new Style<Entry>(Entry.TextColorProperty, Colors.Green),
                Flags = ValidationFlags.ValidateOnValueChanged,
                UriKind = UriKind.Absolute
            });
    }
}

Poniższy zrzut ekranu przedstawia wynikowy element UriValidationBehavior w systemie Android: Zrzut ekranu przedstawiający element UriValidationBehavior w systemie Android

Właściwości

Właściwości Type Opis
DecorationFlags TextDecorationFlags Udostępnia wyliczone wartości używane do ustawiania sposobu obsługi białych spacji.
MaximumLength int Maksymalna długość wartości, która będzie dozwolona.
MinimumLength int Minimalna długość wartości, która będzie dozwolona.
RegexOptions RegexOptions Zawiera wyliczone wartości używane do ustawiania opcji wyrażeń regularnych.
RegexPattern string Wzorzec wyrażenia regularnego, który będzie musiał być zgodny z wartością, zanim będzie dozwolony.
UriKind UriKind Określa typ identyfikatora URI, który ma być akceptowany jako prawidłowy.

Właściwości ValidationBehavior

Następujące właściwości są implementowane w klasie bazowej: public abstract class ValidationBehavior

Właściwość Type Opis
Flags ValidationFlags Zawiera wyliczona wartość określającą sposób obsługi walidacji.
ForceValidateCommand ICommand Umożliwia użytkownikowi udostępnienie niestandardowego ICommand , który obsługuje wymuszanie walidacji.
InvalidStyle Style Element Style , który ma być stosowany do elementu w przypadku niepowodzenia walidacji.
IsNotValid bool Wskazuje, czy bieżąca wartość jest uważana za nieprawidłową.
IsRunning bool Wskazuje, czy walidacja jest teraz w toku (oczekiwanie na zakończenie wywołania asynchronicznego).
IsValid bool Wskazuje, czy bieżąca wartość jest uważana za prawidłową.
ValidStyle Style Element Style , który ma być stosowany do elementu po pomyślnym zakończeniu walidacji.
Value object Wartość do zweryfikowania.
ValuePropertyName string Umożliwia użytkownikowi zastąpienie właściwości, która będzie używana jako wartość do zweryfikowania.

Przykłady

Przykład tego zachowania można znaleźć w przykładzie przykładowym aplikacji zestawu narzędzi .NET MAUI Community Toolkit.

interfejs API

Kod źródłowy można UriValidationBehavior znaleźć w repozytorium GitHub zestawu narzędzi .NET MAUI Community Toolkit.