UWP Pivot控件,如何将焦点设置为PivotItem中的第一个控件

时间:2018-05-16 07:09:24

标签: c# uwp pivot pivotitem

我有一个Pivot控件,它使用ItemsSource绑定到ViewModel实例列表。我指定一个自定义ItemTemplateSelector来映射ViewModel类型和DataTemplate定义。这一切都很好,并且基于关联的DataTemplate为每个ViewModel创建了正确的显示。像这样......

<Pivot ItemsSource="{x:Bind ViewModels}"
       ItemTemplateSelector="{StaticResource ViewModelSelector}"
       SelectedItem="{x:Bind SelectedViewModel, Mode=TwoWay}"/>

问题是我想在首次显示该页面时自动将焦点设置到每个页面内的控件。它们通常是数据输入表单,因此用户当前必须选择第一个控件来开始输入数据。如果首先自动显示页面然后将焦点设置为该页面上的控件,那会更好。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以在加载时将方法绑定到TextBox。

例如:

<Pivot.ItemTemplate>
            <DataTemplate x:DataType="local:Test">
                <TextBox Text="{x:Bind Content}" Height="50" Loaded="{x:Bind TextBox_Loaded}">
                </TextBox>
            </DataTemplate>
        </Pivot.ItemTemplate>
public void TextBox_Loaded(object sender, RoutedEventArgs e)
    {
        TextBox textBox = sender as TextBox;
        if (textBox != null)
        {
            textBox.Focus(FocusState.Programmatic);
        }
    }