1
- using Microsoft . Toolkit . Uwp . UI . Controls ;
1
+ using Microsoft . Toolkit . Uwp . UI ;
2
+ using Microsoft . Toolkit . Uwp . UI . Controls ;
2
3
using System ;
3
4
using System . ComponentModel ;
4
5
using Windows . ApplicationModel . DataTransfer ;
5
6
using Windows . Storage ;
6
7
using Windows . UI . Xaml ;
7
8
using Windows . UI . Xaml . Controls ;
8
9
using Windows . UI . Xaml . Navigation ;
10
+ using Files . Enums ;
9
11
using Files . Filesystem ;
10
- using Files . Navigation ;
11
12
using Files . Interacts ;
12
13
using System . Diagnostics ;
13
14
using Windows . UI . Core ;
@@ -21,7 +22,6 @@ public sealed partial class GenericFileBrowser : Page, INotifyPropertyChanged
21
22
public TextBlock emptyTextGFB ;
22
23
public TextBlock textBlock ;
23
24
public DataGrid data ;
24
- public DataGridColumn sortedColumn ;
25
25
public MenuFlyout context ;
26
26
public MenuFlyout emptySpaceContext ;
27
27
public MenuFlyout HeaderContextMenu ;
@@ -33,14 +33,74 @@ public sealed partial class GenericFileBrowser : Page, INotifyPropertyChanged
33
33
public Flyout CopiedFlyout ;
34
34
public Grid grid ;
35
35
public ProgressBar progressBar ;
36
+ private DataGridColumn _sortedColumn ;
36
37
ItemViewModel viewModelInstance ;
37
38
ProHome tabInstance ;
38
- bool isSortedAscending ;
39
39
40
40
public event PropertyChangedEventHandler PropertyChanged ;
41
41
42
42
public EmptyFolderTextState TextState { get ; set ; } = new EmptyFolderTextState ( ) ;
43
43
44
+ public DataGridColumn SortedColumn
45
+ {
46
+ get
47
+ {
48
+ return _sortedColumn ;
49
+ }
50
+ set
51
+ {
52
+ if ( value == nameColumn )
53
+ viewModelInstance . DirectorySortOption = SortOption . Name ;
54
+ else if ( value == dateColumn )
55
+ viewModelInstance . DirectorySortOption = SortOption . DateModified ;
56
+ else if ( value == typeColumn )
57
+ viewModelInstance . DirectorySortOption = SortOption . FileType ;
58
+ else if ( value == sizeColumn )
59
+ viewModelInstance . DirectorySortOption = SortOption . Size ;
60
+ else
61
+ viewModelInstance . DirectorySortOption = SortOption . Name ;
62
+
63
+ if ( value != _sortedColumn )
64
+ {
65
+ // Remove arrow on previous sorted column
66
+ if ( _sortedColumn != null )
67
+ _sortedColumn . SortDirection = null ;
68
+ value . SortDirection = IsSortedAscending ? DataGridSortDirection . Ascending : DataGridSortDirection . Descending ;
69
+ }
70
+ _sortedColumn = value ;
71
+ }
72
+ }
73
+
74
+ private bool IsSortedByName { get { return SortedColumn == nameColumn ; } set { if ( value ) SortedColumn = nameColumn ; } }
75
+ private bool IsSortedByDate { get { return SortedColumn == dateColumn ; } set { if ( value ) SortedColumn = dateColumn ; } }
76
+ private bool IsSortedByType { get { return SortedColumn == typeColumn ; } set { if ( value ) SortedColumn = typeColumn ; } }
77
+ private bool IsSortedBySize { get { return SortedColumn == sizeColumn ; } set { if ( value ) SortedColumn = sizeColumn ; } }
78
+
79
+ private bool IsSortedAscending
80
+ {
81
+ get
82
+ {
83
+ return viewModelInstance . DirectorySortDirection == SortDirection . Ascending ;
84
+ }
85
+ set
86
+ {
87
+ viewModelInstance . DirectorySortDirection = value ? SortDirection . Ascending : SortDirection . Descending ;
88
+ _sortedColumn . SortDirection = value ? DataGridSortDirection . Ascending : DataGridSortDirection . Descending ;
89
+ }
90
+ }
91
+
92
+ private bool IsSortedDescending
93
+ {
94
+ get
95
+ {
96
+ return ! IsSortedAscending ;
97
+ }
98
+ set
99
+ {
100
+ IsSortedAscending = ! value ;
101
+ }
102
+ }
103
+
44
104
public GenericFileBrowser ( )
45
105
{
46
106
this . InitializeComponent ( ) ;
@@ -49,9 +109,6 @@ public GenericFileBrowser()
49
109
progressBar = progBar ;
50
110
progressBar . Visibility = Visibility . Collapsed ;
51
111
data = AllView ;
52
- sortedColumn = nameColumn ;
53
- sortedColumn . SortDirection = DataGridSortDirection . Ascending ;
54
- isSortedAscending = true ;
55
112
context = RightClickContextMenu ;
56
113
HeaderContextMenu = HeaderRightClickMenu ;
57
114
grid = RootGrid ;
@@ -84,6 +141,22 @@ public GenericFileBrowser()
84
141
NewTextDocument . Click += tabInstance . instanceInteraction . NewTextDocument_Click ;
85
142
PropertiesItem . Click += tabInstance . ShowPropertiesButton_Click ;
86
143
OpenInNewWindowItem . Click += tabInstance . instanceInteraction . OpenInNewWindowItem_Click ;
144
+
145
+ switch ( viewModelInstance . DirectorySortOption )
146
+ {
147
+ case SortOption . Name :
148
+ SortedColumn = nameColumn ;
149
+ break ;
150
+ case SortOption . DateModified :
151
+ SortedColumn = dateColumn ;
152
+ break ;
153
+ case SortOption . FileType :
154
+ SortedColumn = typeColumn ;
155
+ break ;
156
+ case SortOption . Size :
157
+ SortedColumn = nameColumn ;
158
+ break ;
159
+ }
87
160
}
88
161
89
162
private void AddItem_Click ( object sender , RoutedEventArgs e )
@@ -339,64 +412,16 @@ private void AllView_Sorting(object sender, DataGridColumnEventArgs e)
339
412
{
340
413
if ( e . Column == iconColumn )
341
414
return ;
342
- if ( sortedColumn == e . Column )
343
- isSortedAscending = e . Column . SortDirection == DataGridSortDirection . Descending ;
415
+ if ( SortedColumn == e . Column )
416
+ IsSortedAscending = ! IsSortedAscending ;
344
417
else
345
418
{
346
- isSortedAscending = true ;
419
+ IsSortedAscending = true ;
420
+ SortedColumn = e . Column ;
347
421
}
348
422
349
423
NotifyPropertyChanged ( "IsSortedAscending" ) ;
350
424
NotifyPropertyChanged ( "IsSortedDescending" ) ;
351
-
352
- SortBy ( e . Column ) ;
353
- }
354
-
355
- private void SortBy ( DataGridColumn column )
356
- {
357
- var selectedItems = data . SelectedItems ;
358
-
359
- viewModelInstance . OrderFiles ( column . Tag . ToString ( ) , isSortedAscending ) ;
360
-
361
- // Remove arrow on previous sorted column
362
- sortedColumn . SortDirection = null ;
363
- column . SortDirection = isSortedAscending ? DataGridSortDirection . Ascending : DataGridSortDirection . Descending ;
364
- sortedColumn = column ;
365
-
366
- if ( selectedItems . Count == 1 )
367
- {
368
- data . SelectedItem = selectedItems [ 0 ] ;
369
- }
370
- }
371
-
372
- private bool IsSortedByName { get { return sortedColumn == nameColumn ; } set { if ( value ) SortBy ( nameColumn ) ; } }
373
- private bool IsSortedByDate { get { return sortedColumn == dateColumn ; } set { if ( value ) SortBy ( dateColumn ) ; } }
374
- private bool IsSortedByType { get { return sortedColumn == typeColumn ; } set { if ( value ) SortBy ( typeColumn ) ; } }
375
- private bool IsSortedBySize { get { return sortedColumn == sizeColumn ; } set { if ( value ) SortBy ( sizeColumn ) ; } }
376
- private bool IsSortedAscending
377
- {
378
- get
379
- {
380
- return isSortedAscending ;
381
- }
382
- set
383
- {
384
- isSortedAscending = value ;
385
- if ( value ) SortBy ( sortedColumn ) ;
386
- }
387
- }
388
-
389
- private bool IsSortedDescending
390
- {
391
- get
392
- {
393
- return ! isSortedAscending ;
394
- }
395
- set
396
- {
397
- isSortedAscending = ! value ;
398
- if ( value ) SortBy ( sortedColumn ) ;
399
- }
400
425
}
401
426
402
427
private void NotifyPropertyChanged ( string info )
0 commit comments