Установите фокус на выбранный элемент в списке в WPF, не нажимая клавишу Tab - PullRequest
0 голосов
/ 20 сентября 2019

Я переключаюсь между ListView и GridView.Запись, выбранная в одном представлении, была выбрана в другом представлении при переключении.Я могу сделать это, но выбранная запись не фокусируется при переключении на другой вид.Когда я нажимаю клавишу Tab, он получает фокус.Я хочу, чтобы это происходило программно без нажатия клавиши Tab.

Я пытался изменить цвет, но он не работал.

ViewModel:

     private void SetSelectedItemOnViewChange()
    {
        if (SelectedViewMode.ModeName == ViewModes[1].ModeName)
        {
            GallerySearchResults.SelectedSearchItem = GallerySearchResults.GalleryItems.FirstOrDefault((x => x.IndexNo == SelectedRecordIndex));

        }
        else if (SelectedViewMode.ModeName == ViewModes[0].ModeName)
        {
            ListSearchResults.SelectedSearchItem = ListSearchResults.ListItems.FirstOrDefault((x => x.IndexNo == SelectedRecordIndex));

        }
    }

xaml:

        <Grid>
    <ListView SelectionMode="Single" SelectedItem="{Binding SelectedSearchItem}" ItemsSource="{Binding GalleryItems}"  TabIndex="0">
        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                <Style.Resources>
                    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
                    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="{DynamicResource {x:Static SystemColors.ControlTextColorKey}}" />
                    <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent" />

                </Style.Resources>
                <Style.Triggers>
                    <Trigger Property="IsSelected" Value="True">
                        <Setter Property="BorderThickness" Value="30" />
                        <Setter Property="BorderBrush" Value="Blue" />
                    </Trigger>
                    <Trigger Property="IsSelected" Value="False">
                        <Setter Property="BorderThickness" Value="3" />
                        <Setter Property="BorderBrush" Value="Transparent" />

                    </Trigger>
                </Style.Triggers>
            </Style>
        </ListView.ItemContainerStyle>
        <ListView.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel MinWidth="990"
                           Width="{Binding ViewportWidth, Mode=OneWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ScrollViewer}}}" />
            </ItemsPanelTemplate>
        </ListView.ItemsPanel>
        <ListView.ItemTemplate>
            <DataTemplate>
                <local:ImageDescriptionsControl Margin="1" DataContext="{Binding Mode=OneWay}" /> 
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</Grid>

Ожидается: фокусировка на выбранной записи при переключении. Факт: нет фокусировки при нажатии клавиши TAB.Будет иметь серый фон

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