首页 > 解决方案 > 在 Xamarin 中动态更改条目输入的 Tab 键顺序

问题描述

我有五个条目控件,我希望标签顺序根据某些条件进行更改。例如,有时我希望在点击 enter 时焦点从 entryA 转到 entryB,但有时我希望它从 entryA 转到 entryC。

我尝试将 IsTabStop 设置为视图模型中的绑定布尔值,这样当它设置为 false 时,它​​会跳过该条目,但它不起作用。

我还能做些什么来做到这一点?

<Entry x:Name="entryA" ReturnType="Next" TabIndex="0"/>
<Entry x:Name="entryB" ReturnType="Next" TabIndex="1" IsTabStop="{Binding isTabStop}"/>
<Entry x:Name="entryC" ReturnType="Next" TabIndex="2"/>
<Entry x:Name="entryD" ReturnType="Next" TabIndex="3"/>
<Entry x:Name="entryE" ReturnType="Next" TabIndex="4"/>

标签: c#asp.netxamarintabs

解决方案


Entry 中有一个Completed方法来确定输入操作。然后使用Focus来设置焦点。

这是一个小例子供您参考:

这是xaml代码(我只在第一个Entry中设置了方法):

<StackLayout>
    <Entry x:Name="entryA" ReturnType="Next" TabIndex="0" Completed="entryA_Completed"/>
    <Entry x:Name="entryB" ReturnType="Next" TabIndex="1"/>
    <Entry x:Name="entryC" ReturnType="Next" TabIndex="2"/>
    <Entry x:Name="entryD" ReturnType="Next" TabIndex="3"/>
    <Entry x:Name="entryE" ReturnType="Next" TabIndex="4"/>
</StackLayout>

下面是后台代码:

private void entryA_Completed(object sender, EventArgs e)
   {
       //You can make some judgments
       entryC.Focus();//Select the third Entry
   }

推荐阅读