2010-06-27 110 views
0

我有一個列表框,其中包含多個文本框的數據模板。我希望用戶能夠選中所有文本框,然後選中下一個列表項的文本框,而無需使用CTRL + TAB。WPF:列表框項目模板標記導航項目

一些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個用戶提出,他們希望能夠使用Tab鍵進入列表框中,編輯/更新名稱&解決所有10個用戶的問題並繼續製表。我遇到的問題是,當用戶到達最後一個文本框(zip)並點擊選項卡時,焦點將完全離開列表框。

我知道這與CTRL + TAB一起使用,但這對用戶體驗來說是不可接受的。有沒有辦法使用TAB鍵而不是CTRL + TAB鍵來使列表框選項卡通過它的項目?

我嘗試使用KeyboardNavigation.TabNavigation,.ControlNavigation等的變體沒有任何運氣,雖然我可能做錯了什麼。

有什麼想法?

回答

1

你好,我測試了加入以下代碼列表框聲明

<ListBox 
KeyboardNavigation.TabNavigation="Continue" 

的作品就像一個魅力; d