【问题标题】:WPF: ListBox itemtemplate tag navigation through itemsWPF:通过项目的列表框项目模板标签导航
【发布时间】:2010-06-27 17:39:50
【问题描述】:

我有一个列表框,其中包含一个包含多个文本框的数据模板。我希望用户能够在所有文本框之间切换,然后切换到下一个列表项的文本框,而无需使用 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 个用户之间切换。我遇到的问题是,当用户到达最后一个文本框(zip)并点击选项卡时,焦点完全离开了列表框。

我知道这适用于 CTRL+TAB 但这对于用户体验来说是不可接受的。有没有办法使用 TAB 键而不是 CTRL+TAB 键使列表框选项卡通过其项目?

我尝试使用 KeyboardNavigation.TabNavigation、.ControlNavigation 等的变体,但没有任何运气,尽管我可能做错了什么。

有什么想法吗?

【问题讨论】:

    标签: wpf


    【解决方案1】:

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

    <ListBox  
    KeyboardNavigation.TabNavigation="Continue"
    

    像魅力一样工作;D

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      相关资源
      最近更新 更多