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:
Свойства
Свойство | 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.
.NET MAUI Community Toolkit
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по