WPF:ListBox项目模板标记在项目中的导航

WPF:ListBox项目模板标记在项目中的导航,wpf,Wpf,我有一个列表框,它有一个包含多个文本框的datatemplate。我希望用户能够在所有文本框中使用tab键,然后在下一个列表项的文本框中使用tab键,而不必使用CTRL+tab键 一些XAML: <DataTemplate x:Key="UsersDataTemplate"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/>

我有一个列表框,它有一个包含多个文本框的datatemplate。我希望用户能够在所有文本框中使用tab键,然后在下一个列表项的文本框中使用tab键,而不必使用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个用户,他们希望能够在列表框中使用tab键,编辑/更新名称和地址,并在所有10个用户中继续使用tab键。我遇到的问题是,当用户到达最后一个文本框(zip)并点击tab时,focus会完全离开列表框

我知道这与CTRL+TAB一起工作,但这对于用户体验来说是不可接受的。是否有一种方法可以使用tab键而不是CTRL+tab键使列表框通过其项进行制表

我尝试使用KeyboardNavigation.TabNavigation.ControlNavigation等的变体,但运气不好,尽管我可能做错了什么


有什么想法吗?

您好,我测试了在listbox声明中添加以下代码

<ListBox  
KeyboardNavigation.TabNavigation="Continue"