Я переключаюсь между 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.Будет иметь серый фон