8
8
using Microsoft . UI . Xaml . Controls ;
9
9
using Microsoft . UI . Xaml . Navigation ;
10
10
using Windows . Storage ;
11
- using static Files . App . Constants ;
12
11
using static Files . App . Helpers . PathNormalization ;
13
12
14
13
namespace Files . App . Views . Layouts
@@ -38,7 +37,7 @@ public ColumnsLayoutPage() : base()
38
37
39
38
public void HandleSelectionChange ( ColumnLayoutPage initiator )
40
39
{
41
- foreach ( var blade in ColumnHost . ActiveBlades )
40
+ foreach ( var blade in ColumnHost . ActiveBlades . ToList ( ) )
42
41
{
43
42
var columnView = blade . FindDescendant < ColumnLayoutPage > ( ) ;
44
43
if ( columnView != null && columnView != initiator )
@@ -64,7 +63,7 @@ private void ColumnViewBase_ItemInvoked(object? sender, EventArgs e)
64
63
return ;
65
64
66
65
var nextBladeIndex = ColumnHost . ActiveBlades . IndexOf ( column . ListView . FindAscendant < BladeItem > ( ) ) + 1 ;
67
- var nextBlade = ColumnHost . ActiveBlades . ElementAtOrDefault ( nextBladeIndex ) ;
66
+ var nextBlade = ColumnHost . ActiveBlades . ToList ( ) . ElementAtOrDefault ( nextBladeIndex ) ;
68
67
var arePathsDifferent = ( ( nextBlade ? . Content as Frame ) ? . Content as IShellPage ) ? . FilesystemViewModel ? . WorkingDirectory != column . NavPathParam ;
69
68
70
69
if ( nextBlade is null || arePathsDifferent )
@@ -240,11 +239,11 @@ private void ColumnViewBrowser_GotFocus(object sender, RoutedEventArgs e)
240
239
if ( sender is not IShellPage shPage || shPage . IsCurrentInstance )
241
240
return ;
242
241
243
- var currentBlade = ColumnHost . ActiveBlades . Single ( x => ( x . Content as Frame ) ? . Content == sender ) ;
242
+ var currentBlade = ColumnHost . ActiveBlades . ToList ( ) . Single ( x => ( x . Content as Frame ) ? . Content == sender ) ;
244
243
currentBlade . StartBringIntoView ( ) ;
245
244
if ( ColumnHost . ActiveBlades is not null )
246
245
{
247
- ColumnHost . ActiveBlades . ForEach ( x =>
246
+ ColumnHost . ActiveBlades . ToList ( ) . ForEach ( x =>
248
247
{
249
248
var shellPage = ( x . Content as Frame ) ? . Content as ColumnShellPage ;
250
249
shellPage . IsCurrentInstance = false ;
@@ -295,7 +294,7 @@ public void NavigateUp()
295
294
DismissOtherBlades ( ColumnHost . ActiveBlades [ ColumnHost . ActiveBlades . Count - 2 ] ) ;
296
295
else
297
296
{
298
- var workingDirectory = ( ( ColumnHost . ActiveBlades ? . FirstOrDefault ( ) ? . Content as Frame ) ? . Content as ColumnShellPage ) ? . FilesystemViewModel . WorkingDirectory ;
297
+ var workingDirectory = ( ( ColumnHost . ActiveBlades ? . ToList ( ) . FirstOrDefault ( ) ? . Content as Frame ) ? . Content as ColumnShellPage ) ? . FilesystemViewModel . WorkingDirectory ;
299
298
if ( workingDirectory is null || string . Equals ( workingDirectory , GetPathRoot ( workingDirectory ) , StringComparison . OrdinalIgnoreCase ) )
300
299
ParentShellPageInstance ? . NavigateHome ( ) ;
301
300
else
@@ -358,8 +357,8 @@ public void SetSelectedPathOrNavigate(string navigationPath, Type sourcePageType
358
357
}
359
358
360
359
var destPath = navArgs is not null ? navArgs . NavPathParam : navigationPath ;
361
- var columnPath = ( ( ColumnHost . ActiveBlades . Last ( ) . Content as Frame ) ? . Content as ColumnShellPage ) ? . FilesystemViewModel . WorkingDirectory ;
362
- var columnFirstPath = ( ( ColumnHost . ActiveBlades . First ( ) . Content as Frame ) ? . Content as ColumnShellPage ) ? . FilesystemViewModel . WorkingDirectory ;
360
+ var columnPath = ( ( ColumnHost . ActiveBlades . ToList ( ) . LastOrDefault ( ) ? . Content as Frame ) ? . Content as ColumnShellPage ) ? . FilesystemViewModel . WorkingDirectory ;
361
+ var columnFirstPath = ( ( ColumnHost . ActiveBlades . ToList ( ) . FirstOrDefault ( ) ? . Content as Frame ) ? . Content as ColumnShellPage ) ? . FilesystemViewModel . WorkingDirectory ;
363
362
364
363
if ( string . IsNullOrEmpty ( destPath ) || string . IsNullOrEmpty ( columnPath ) || string . IsNullOrEmpty ( columnFirstPath ) )
365
364
{
@@ -403,7 +402,7 @@ public void SetSelectedPathOrNavigate(PathNavigationEventArgs e)
403
402
{
404
403
if ( ColumnHost . ActiveBlades ? . Count > 1 )
405
404
{
406
- foreach ( var item in ColumnHost . ActiveBlades )
405
+ foreach ( var item in ColumnHost . ActiveBlades . ToList ( ) )
407
406
{
408
407
if ( ( item . Content as Frame ) ? . Content is ColumnShellPage s &&
409
408
NormalizePath ( s . FilesystemViewModel ? . WorkingDirectory ) == NormalizePath ( e . ItemPath ) )
@@ -429,7 +428,7 @@ public IShellPage ActiveColumnShellPage
429
428
{
430
429
if ( ColumnHost . ActiveBlades ? . Count > 0 )
431
430
{
432
- var shellPages = ColumnHost . ActiveBlades . Select ( x => ( x . Content as Frame ) . Content as IShellPage ) ;
431
+ var shellPages = ColumnHost . ActiveBlades . ToList ( ) . Select ( x => ( x . Content as Frame ) . Content as IShellPage ) ;
433
432
var activeInstance = shellPages . SingleOrDefault ( x => x . IsCurrentInstance ) ;
434
433
return activeInstance ?? shellPages . Last ( ) ;
435
434
}
@@ -467,7 +466,7 @@ private void CloseUnnecessaryColumns(ColumnParam column)
467
466
if ( relativeIndex is - 1 )
468
467
{
469
468
// Get the index of the blade with the same path as the requested
470
- var blade = ColumnHost . ActiveBlades . FirstOrDefault ( b =>
469
+ var blade = ColumnHost . ActiveBlades . ToList ( ) . FirstOrDefault ( b =>
471
470
column . NavPathParam . Equals ( ( ( b . Content as Frame ) ? . Content as ColumnShellPage ) ? . FilesystemViewModel ? . WorkingDirectory ) ) ;
472
471
473
472
if ( blade is not null )
0 commit comments