UserStoppedTypingBehavior
UserStoppedTypingBehavior
是一种 Behavior
,当用户停止在控件(例如 Entry
、SearchBar
和 Editor
)输入数据时,它将触发操作。 其用法的示例包括在用户停止输入其搜索查询时触发搜索。
重要
.NET MAUI 社区工具包行为不会设置行为的 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>
使用 UserStoppedTypingBehavior
可以在 XAML 中按如下所示方式使用 UserStoppedTypingBehavior
:
<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="MyLittleApp.MainPage"
x:Name="Page">
<Entry
Placeholder="Start typing when you stop the behavior will trigger..."
x:Name="UserStoppedTypingEntry">
<Entry.Behaviors>
<toolkit:UserStoppedTypingBehavior
BindingContext="{Binding Path=BindingContext, Source={x:Reference UserStoppedTypingEntry}, x:DataType=Entry}"
Command="{Binding SearchCommand}"
StoppedTypingTimeThreshold="1000"
MinimumLengthThreshold="3"
ShouldDismissKeyboardAutomatically="True" />
</Entry.Behaviors>
</Entry>
</ContentPage>
C#
UserStoppedTypingBehavior
可在 C# 中按如下所示方式使用:
class UserStoppedTypingBehaviorPage : ContentPage
{
public UserStoppedTypingBehaviorPage()
{
var behavior = new UserStoppedTypingBehavior()
{
StoppedTypingTimeThreshold = 1000,
MinimumLengthThreshold = 3,
ShouldDismissKeyboardAutomatically = true
};
behavior.SetBinding(UserStoppedTypingBehavior.CommandProperty,
static (ViewModel vm) => vm.SearchCommand,
source: this.BindingContext);
var entry = new Entry
{
Placeholder = "Start typing when you stop the behavior will trigger..."
};
entry.Behaviors.Add(behavior);
}
}
C# 标记
我们的 CommunityToolkit.Maui.Markup
包提供一种更简洁的方式来在 C# 中使用此 Behavior
。
using CommunityToolkit.Maui.Markup;
class UserStoppedTypingBehaviorPage : ContentPage
{
public UserStoppedTypingBehaviorPage()
{
Content = new Entry
{
Placeholder = "Start typing when you stop the behavior will trigger..."
}
.Behaviors(new UserStoppedTypingBehavior
{
StoppedTypingTimeThreshold = 1000,
MinimumLengthThreshold = 3,
ShouldDismissKeyboardAutomatically = true
}.Bind(UserStoppedTypingBehavior.CommandProperty,
getter: static (ViewModel vm) => vm.SearchCommand,
source: this.BindingContext,
mode: BindingMode.OneTime));
}
}
属性
属性 | 类型 | 描述 |
---|---|---|
命令 | ICommand | 当用户停止提供输入时要执行的命令。 |
MinimumLengthThreshold | int | 执行命令之前所需的输入值的最小长度。 |
ShouldDismissKeyboardAutomatically | 布尔 | 指示是否应自动关闭键盘。 |
StoppedTypingTimeThreshold | int | 执行命令后处于非活动状态的时间(以毫秒为单位)。 |
示例
可以在 .NET MAUI 社区工具包示例应用程序中查找此行为的示例。
API
可以在 .NET MAUI 社区工具包 GitHub 存储库查看UserStoppedTypingBehavior
的源代码