diff --git a/src/Files.App/Views/Layouts/DetailsLayoutPage.xaml.cs b/src/Files.App/Views/Layouts/DetailsLayoutPage.xaml.cs index 40121e1ea23d..8ec82e44f150 100644 --- a/src/Files.App/Views/Layouts/DetailsLayoutPage.xaml.cs +++ b/src/Files.App/Views/Layouts/DetailsLayoutPage.xaml.cs @@ -884,8 +884,18 @@ private void ItemSelected_Checked(object sender, RoutedEventArgs e) private void ItemSelected_Unchecked(object sender, RoutedEventArgs e) { - if (sender is CheckBox checkBox && checkBox.DataContext is ListedItem item && FileList.SelectedItems.Contains(item)) + if (sender is not CheckBox checkBox) + return; + + if (checkBox.DataContext is ListedItem item && FileList.SelectedItems.Contains(item)) FileList.SelectedItems.Remove(item); + + // Workaround for #17298 + checkBox.IsTabStop = false; + checkBox.IsEnabled = false; + checkBox.IsEnabled = true; + checkBox.IsTabStop = true; + FileList.Focus(FocusState.Programmatic); } private new void FileList_ContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args) diff --git a/src/Files.App/Views/Layouts/GridLayoutPage.xaml.cs b/src/Files.App/Views/Layouts/GridLayoutPage.xaml.cs index b2f10c3c4cdf..a62cddccbf4a 100644 --- a/src/Files.App/Views/Layouts/GridLayoutPage.xaml.cs +++ b/src/Files.App/Views/Layouts/GridLayoutPage.xaml.cs @@ -670,10 +670,18 @@ checkBox.DataContext is ListedItem item && private void ItemSelected_Unchecked(object sender, RoutedEventArgs e) { - if (sender is CheckBox checkBox && - checkBox.DataContext is ListedItem item && - FileList.SelectedItems.Contains(item)) + if (sender is not CheckBox checkBox) + return; + + if (checkBox.DataContext is ListedItem item && FileList.SelectedItems.Contains(item)) FileList.SelectedItems.Remove(item); + + // Workaround for #17298 + checkBox.IsTabStop = false; + checkBox.IsEnabled = false; + checkBox.IsEnabled = true; + checkBox.IsTabStop = true; + FileList.Focus(FocusState.Programmatic); } private new void FileList_ContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args)