Элемент управления UWP Pivot, как установить фокус на первый элемент управления в PivotItem

У меня есть элемент управления Pivot, который использует ItemsSource для привязки к списку экземпляров ViewModel. Я назначаю пользовательский ItemTemplateSelector для сопоставления между типами ViewModel и определениями DataTemplate. Все это работает нормально, и для каждой модели представления создается правильное отображение на основе соответствующего шаблона данных. Что-то вроде этого...

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

Проблема в том, что я хочу автоматически установить фокус на элемент управления на каждой странице, когда эта страница отображается в первый раз. Как правило, они представляют собой формы ввода данных, поэтому в настоящее время пользователь должен выбрать первый элемент управления, чтобы начать ввод данных. Было бы лучше, если сначала показывать страницу автоматически, а затем установить фокус на элемент управления на этой странице.

Есть идеи?

1 ответ

Вы можете привязать метод к 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);
        }
    }
Другие вопросы по тегам