У меня есть список со списком данных, который содержит несколько текстовых полей. Я хочу, чтобы пользователь мог перемещаться по всем текстовым полям, а затем к текстовым полям следующего элемента списка, не используя клавиши CTRL + TAB.
Некоторые XAML:
<DataTemplate x:Key="UsersDataTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" Grid.Column="0" Grid.Row="0">
<Label Content="Full Name" />
<TextBox Text="{Binding Path=FullName}" />
</StackPanel>
<StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="0">
<Label Content="Address" />
<TextBox Text="{Binding Path=Address}" />
</StackPanel>
<StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="1">
<Label Content="City" />
<TextBox Text="{Binding Path=City}" />
</StackPanel>
<StackPanel Orientation="Horizontal" Grid.Row="2" Grid.Column="0">
<Label Content="State" />
<TextBox Text="{Binding Path=State}" />
</StackPanel>
<StackPanel Orientation="Horizontal" Grid.Row="2" Grid.Column="1">
<Label Content="Zip" />
<TextBox Text="{Binding Path=Zip}" />
</StackPanel>
</Grid>
</DataTemplate>
<ListBox ItemTemplate="{DynamicResource UsersDataTemplate}"
ItemsSource="{Binding ElementName=MyUserControl, Path=Users}"
Width="914"
Margin="2,2,2,2" />
Идея состоит в том, что пользователю может быть представлено от 1 до 10 пользователей в этом списке, и они хотят иметь возможность вкладывать в список, редактировать / обновлять имена и адреса и продолжать вкладывать всех 10 пользователей. Проблема, с которой я сталкиваюсь, заключается в том, что когда пользователь добирается до последнего текстового поля (zip) и нажимает на вкладку, фокус полностью покидает список.
Я знаю, что это работает с CTRL + TAB, но это неприемлемо для пользователей. Есть ли способ сделать вкладку со списком через ее элементы клавишей TAB вместо клавиши CTRL + TAB?
Я безуспешно пытался использовать варианты KeyboardNavigation.TabNavigation, .ControlNavigation и т. Д., Хотя, возможно, я делаю что-то не так.
Есть мысли?