Как сфокусировать элемент в списке из модели представления
Я делаю автозаполнение и хочу пройти по клавишам вверх и вниз в списке с результатами. Поэтому мне нужно изменить фокус с текстового поля на первый элемент списка.
Для изменения фокуса на listbox я использовал focusmanager. Но focusmanager фокусирует список, а не первый элемент. Мне приходится дважды нажать кнопку вниз, чтобы начать ходить по списку. Изменение свойства SelectedClient в listbox не помогает.
Что я уже пробовал:
<TextBox Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Name="Client" Text="{Binding Client}" cal:Message.Attach="[Event KeyUp] = [Action ExecuteFilterView($executionContext)]" Validation.ErrorTemplate="{x:Null}" > <TextBox.Style> <Style> <Style.Triggers> <DataTrigger Binding="{Binding UserCanChooseClient}" Value="True"> <Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=Clients}"/> </DataTrigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox> <ListBox x:Name="Clients" Width="190" Height="auto" MaxHeight="400" Margin="5 28 0 0" cal:Message.Attach="[Event KeyUp] = [Action ExecuteClientsView($executionContext)]; [Event MouseLeftButtonUp]=[Action HandleClientChosenClick($eventArgs)]" ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Hidden" SelectedItem="{Binding Path=SelectedClient}" ItemsSource="{Binding Path=Clients}" DisplayMemberPath="Description" SelectedValuePath="Code"></ListBox>