Skip to content

Commit 78235fd

Browse files
authored
Fix: Fixed NullReferenceException with ColumnViewBase.EndRename (#13771)
1 parent 179ea59 commit 78235fd

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

src/Files.App/Views/LayoutModes/ColumnViewBase.xaml.cs

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using CommunityToolkit.WinUI.UI;
55
using Files.App.UserControls.Selection;
6+
using Microsoft.UI.Dispatching;
67
using Microsoft.UI.Input;
78
using Microsoft.UI.Xaml;
89
using Microsoft.UI.Xaml.Controls;
@@ -13,9 +14,8 @@
1314
using Windows.Storage;
1415
using Windows.System;
1516
using Windows.UI.Core;
16-
using DispatcherQueueTimer = Microsoft.UI.Dispatching.DispatcherQueueTimer;
1717
using static Files.App.Constants;
18-
using Microsoft.UI.Dispatching;
18+
using DispatcherQueueTimer = Microsoft.UI.Dispatching.DispatcherQueueTimer;
1919

2020
namespace Files.App.Views.LayoutModes
2121
{
@@ -169,16 +169,8 @@ await ValidateItemNameInputTextAsync(textBox, args, (showError) =>
169169

170170
protected override void EndRename(TextBox textBox)
171171
{
172-
if (textBox is not null && textBox.Parent is not null)
173-
{
174-
// Re-focus selected list item
175-
var listViewItem = FileList.ContainerFromItem(RenamingItem) as ListViewItem;
176-
listViewItem?.Focus(FocusState.Programmatic);
177-
178-
var textBlock = listViewItem?.FindDescendant("ItemName") as TextBlock;
179-
textBox!.Visibility = Visibility.Collapsed;
180-
textBlock!.Visibility = Visibility.Visible;
181-
}
172+
FileNameTeachingTip.IsOpen = false;
173+
IsRenamingItem = false;
182174

183175
// Unsubscribe from events
184176
if (textBox is not null)
@@ -187,8 +179,19 @@ protected override void EndRename(TextBox textBox)
187179
textBox.KeyDown -= RenameTextBox_KeyDown;
188180
}
189181

190-
FileNameTeachingTip.IsOpen = false;
191-
IsRenamingItem = false;
182+
if (textBox is not null && textBox.Parent is not null)
183+
{
184+
ListViewItem? listViewItem = FileList.ContainerFromItem(RenamingItem) as ListViewItem;
185+
if (listViewItem is null)
186+
return;
187+
188+
// Re-focus selected list item
189+
listViewItem.Focus(FocusState.Programmatic);
190+
191+
TextBlock? textBlock = listViewItem.FindDescendant("ItemName") as TextBlock;
192+
textBox!.Visibility = Visibility.Collapsed;
193+
textBlock!.Visibility = Visibility.Visible;
194+
}
192195
}
193196

194197
public override void ResetItemOpacity()

0 commit comments

Comments
 (0)