xamarin - 使用自定义渲染器在 xamarin 表单中可见或启用时自动聚焦条目
问题描述
我有一个页面,在其中显示有页脚的列表视图中的项目列表。列表视图的页脚仅在特定条件下可见。这是具有条目的列表视图页脚。
<listview:SfListView.FooterTemplate>
<DataTemplate>
<Grid Padding="15,5,10,10" IsVisible="{Binding NewListEntryVisible}">
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<local:AutoFocusEntry ReturnType="Done" IsVisible="{Binding NewListEntryVisible}" Grid.Row="0" IsEnabled="{Binding FocusEntry}" Text="{Binding cartName}" x:Name="NewListEntry" Placeholder="Enter list name">
<local:AutoFocusEntry.Behaviors>
<behaviors:EventToCommandBehavior
EventName="Completed"
Command="{Binding NewListCommand}" />
</local:AutoFocusEntry.Behaviors>
</local:AutoFocusEntry>
</Grid>
</DataTemplate>
</listview:SfListView.FooterTemplate>
一旦页脚可见(正如我之前所说,它在某些条件下可见),我希望页脚中的条目自动获得焦点。如何使用 Entry Custom Renderer 来实现这一点。
提前致谢。
解决方案
您想在显示或隐藏页脚的 ViewModel 字段中侦听属性更改事件。
为您的条目命名:
<local:AutoFocusEntry x:Name="yourEntry"
在您的 page.xaml.cs 中侦听您想要的属性更改事件,以便为条目调用 Focus 事件:
yourViewModel.PropertyChanged += (sender, args) => {
if (args.PropertyName.Equals("YourPropertyIsVisible"))
yourEntry.Focus();
};
推荐阅读
- c# - C# 使用来自授权端点 (crv, x, y) 的值验证 JWT 令牌
- google-apps-script - 当项目被附加并发布时,我想了解 GAS 的 SpreadsheetTriggerBuilder
- javascript - 如何修复 API 调用 nodeJS 上的 Cors 错误消息
- python - 在python中“注册”一个重载的运算符
- eclipse - Eclispe:导出 JavaFX14
- asp.net-core - 带参数的属性路由 - 锚标记助手附加 Route-Id 值
- java - React-native android bridge 请求许可
- firebase - 关于不安全规则的 Firebase Firestore 电子邮件
- elasticsearch - 是否可以在现有条款之上添加条款“必须”
- python - 使用最小和最大范围的时间戳绘制 ax.axhline