2010-06-27 5 views
0

J'ai une zone de liste qui a un datatemplate qui contient plusieurs zones de texte. Je souhaite que l'utilisateur puisse passer d'un onglet à l'autre dans toutes les zones de texte, puis aux zones de texte de l'élément de liste suivant sans avoir à utiliser CTRL + TAB.WPF: Balise ListBox itemtemplate Navigation dans les éléments

Certains 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" /> 

L'idée est que l'utilisateur peut être présenté avec n'importe où de 1 à 10 utilisateurs dans cette zone de liste et ils veulent pouvoir onglet dans la zone de liste, édition/noms de mise à jour & adresses et continuer à tabuler à travers les 10 utilisateurs. Le problème que j'ai est que lorsque l'utilisateur arrive à la dernière zone de texte (zip) et à l'onglet hits, focus quitte complètement la zone de liste.

Je sais que cela fonctionne avec CTRL + TAB mais cela est inacceptable pour l'expérience des utilisateurs. Existe-t-il un moyen de rendre l'onglet zone de liste à travers ses éléments avec la touche TAB au lieu de la touche CTRL + TAB?

J'ai essayé d'utiliser des variantes de KeyboardNavigation.TabNavigation, .ControlNavigation, etc. sans aucune chance, bien que je puisse faire quelque chose de mal.

Des pensées?

Répondre

1

Bonjour J'ai testé en ajoutant le code suivant à la déclaration listbox

<ListBox 
KeyboardNavigation.TabNavigation="Continue" 

fonctionne comme un charme; D

Questions connexes