WPF: ListBox itemtemplate тег навигации по элементам - PullRequest
0 голосов
/ 27 июня 2010

У меня есть список со списком данных, который содержит несколько текстовых полей. Я хочу, чтобы пользователь мог перемещаться по всем текстовым полям, а затем к текстовым полям следующего элемента списка, не используя клавиши 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 Ответ

1 голос
/ 27 июня 2010

Здравствуйте, я тестировал добавление следующего кода в объявление списка

<ListBox  
KeyboardNavigation.TabNavigation="Continue"

работает как шарм; D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...