@@ -270,12 +270,7 @@ protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs chang
270270 foreach ( var obj in objects )
271271 _tree . Add ( new ViewModels . RevisionFileTreeNode { Backend = obj } ) ;
272272
273- _tree . Sort ( ( l , r ) =>
274- {
275- if ( l . IsFolder == r . IsFolder )
276- return string . Compare ( l . Name , r . Name , StringComparison . Ordinal ) ;
277- return l . IsFolder ? - 1 : 1 ;
278- } ) ;
273+ SortNodes ( _tree ) ;
279274
280275 var topTree = new List < ViewModels . RevisionFileTreeNode > ( ) ;
281276 MakeRows ( topTree , _tree , 0 ) ;
@@ -341,13 +336,7 @@ private void OnRowsSelectionChanged(object sender, SelectionChangedEventArgs _)
341336 foreach ( var obj in objects )
342337 node . Children . Add ( new ViewModels . RevisionFileTreeNode ( ) { Backend = obj } ) ;
343338
344- node . Children . Sort ( ( l , r ) =>
345- {
346- if ( l . IsFolder == r . IsFolder )
347- return Models . NumericSort . Compare ( l . Name , r . Name ) ;
348- return l . IsFolder ? - 1 : 1 ;
349- } ) ;
350-
339+ SortNodes ( node . Children ) ;
351340 return node . Children ;
352341 }
353342
@@ -365,6 +354,16 @@ private void MakeRows(List<ViewModels.RevisionFileTreeNode> rows, List<ViewModel
365354 }
366355 }
367356
357+ private void SortNodes ( List < ViewModels . RevisionFileTreeNode > nodes )
358+ {
359+ nodes . Sort ( ( l , r ) =>
360+ {
361+ if ( l . IsFolder == r . IsFolder )
362+ return Models . NumericSort . Compare ( l . Name , r . Name ) ;
363+ return l . IsFolder ? - 1 : 1 ;
364+ } ) ;
365+ }
366+
368367 private List < ViewModels . RevisionFileTreeNode > _tree = [ ] ;
369368 private AvaloniaList < ViewModels . RevisionFileTreeNode > _rows = [ ] ;
370369 private bool _disableSelectionChangingEvent = false ;
0 commit comments