MaxLengthReachedBehavior
MaxLengthReachedBehavior
は、ユーザーが InputView
で許可されている最大長に達したときに、ユーザーがアクションをトリガーできるようにする Behavior
です。 ユーザーの優先シナリオに応じて Command
またはイベントのいずれかをトリガーできます。 Command
とイベントのどちらにも、InputView
の結果のテキストが含まれます。
さらに、false
を既定値とする ShouldDismissKeyboardAutomatically
プロパティを使用して、最大長に達したときにキーボードを閉じることができます。
重要
.NET MAUI Community Toolkit のビヘイビアーでは、ビヘイビアーの BindingContext
は設定されません。ビヘイビアーはスタイルを利用して共有し、複数のコントロールに適用できるためです。 詳細については、「.NET MAUI のビヘイビアー」を参照してください
構文
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>
MaxLengthReachedBehavior の使用
MaxLengthReachedBehavior
は、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.MaxLengthReachedBehaviorPage"
x:Name="Page">
<Entry Placeholder="Start typing until MaxLength is reached..."
MaxLength="100"
x:Name="MaxLengthEntry">
<Entry.Behaviors>
<toolkit:MaxLengthReachedBehavior
BindingContext="{Binding Path=BindingContext, Source={x:Reference MaxLengthEntry}, x:DataType=Entry}"
Command="{Binding Source={x:Reference Page}, Path=BindingContext.MaxLengthReachedCommand, x:DataType=ContentPage}" />
</Entry.Behaviors>
</Entry>
</ContentPage>
C#
MaxLengthReachedBehavior
は、C# では次のように使用できます。
class MaxLengthReachedBehaviorPage : ContentPage
{
public MaxLengthReachedBehaviorPage()
{
var entry = new Entry
{
Placeholder = "Start typing until MaxLength is reached...",
MaxLength = 100
};
var behavior = new MaxLengthReachedBehavior();
behavior.SetBinding(
MaxLengthReachedBehavior.CommandProperty,
static (MaxLengthReachedBehaviorViewModel vm) => vm.MaxLengthReachedCommand,
source: this.BindingContext);
entry.Behaviors.Add(behavior);
Content = entry;
}
}
C# Markup
この CommunityToolkit.Maui.Markup
パッケージを使うと、より簡潔な方法でこの Behavior
を C# で使用できます。
using CommunityToolkit.Maui.Markup;
class MaxLengthReachedBehaviorPage : ContentPage
{
public MaxLengthReachedBehaviorPage()
{
Content = new Entry
{
Placeholder = "Start typing until MaxLength is reached...",
MaxLength = 100
}.Behaviors(
new MaxLengthReachedBehavior()
.Bind(MaxLengthReachedBehavior.CommandProperty,
getter: static (ViewModel vm) => vm.MaxLengthReachedCommand,
source: this.BindingContext));
}
}
Properties
プロパティ | タイプ | 説明 |
---|---|---|
Command |
ICommand | ユーザーが最大長に達したときに実行されるコマンド。 このコマンドのパラメーターには、InputView の Text が含まれます。 |
ShouldDismissKeyboardAutomatically |
bool |
最大長に達したときにキーボードを自動的に閉じるかどうかを示します。 |
Events
Event | 説明 |
---|---|
MaxLengthReached |
ユーザーが最大長に達したときに発生するイベント。 イベント引数には、InputView の Text が含まれます。 |
例
このビヘイビアーの動作の例は .NET MAUI Community Toolkit サンプル アプリケーションで確認できます。
API
MaxLengthReachedBehavior
のソース コードは、.NET MAUI Community Toolkit の GitHub リポジトリにあります。
.NET MAUI Community Toolkit