WPF:ListBox itemtemplate标签导航项目

时间:2010-06-27 17:39:51

标签: wpf

我有一个列表框,其中包含一个包含多个文本框的datatemplate。我希望用户能够选中所有文本框,然后切换到下一个列表项的文本框,而不必使用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等变体而没有任何运气,但我可能做错了。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您好我测试了将以下代码添加到列表框声明

<ListBox  
KeyboardNavigation.TabNavigation="Continue"

就像一个魅力; D