1- using System ;
1+ using Microsoft . AnyContainer ;
2+ using System ;
23using System . Collections . Generic ;
34using System . Linq ;
45using System . Text ;
56using System . Threading . Tasks ;
67using System . Windows . Controls ;
8+ using VidCoder . Services ;
79
810namespace VidCoder . Controls ;
911
@@ -15,25 +17,32 @@ protected override void OnSelectionChanged(SelectionChangedEventArgs e)
1517 {
1618 base . OnSelectionChanged ( e ) ;
1719
18- bool isVirtualizing = VirtualizingPanel . GetIsVirtualizing ( this ) ;
19- bool isMultiSelect = this . SelectionMode != SelectionMode . Single ;
20-
21- if ( isVirtualizing && isMultiSelect )
20+ try
2221 {
23- var newSelectedItems = this . SelectedItems . Cast < IListItemViewModel > ( ) . ToList ( ) ;
22+ bool isVirtualizing = VirtualizingPanel . GetIsVirtualizing ( this ) ;
23+ bool isMultiSelect = this . SelectionMode != SelectionMode . Single ;
2424
25- foreach ( var deselectedItem in this . selectedItems . Except ( newSelectedItems ) )
25+ if ( isVirtualizing && isMultiSelect )
2626 {
27- deselectedItem . IsSelected = false ;
28- }
27+ var newSelectedItems = this . SelectedItems . Cast < IListItemViewModel > ( ) . ToList ( ) ;
2928
30- this . selectedItems . Clear ( ) ;
31- this . selectedItems . AddRange ( newSelectedItems ) ;
29+ foreach ( var deselectedItem in this . selectedItems . Except ( newSelectedItems ) . ToList ( ) )
30+ {
31+ deselectedItem . IsSelected = false ;
32+ }
3233
33- foreach ( var newlySelectedItem in this . selectedItems )
34- {
35- newlySelectedItem . IsSelected = true ;
34+ this . selectedItems . Clear ( ) ;
35+ this . selectedItems . AddRange ( newSelectedItems ) ;
36+
37+ foreach ( var newlySelectedItem in this . selectedItems )
38+ {
39+ newlySelectedItem . IsSelected = true ;
40+ }
3641 }
3742 }
43+ catch ( Exception exception )
44+ {
45+ StaticResolver . Resolve < IAppLogger > ( ) . Log ( "Could not select item: " + exception . ToString ( ) ) ;
46+ }
3847 }
3948}
0 commit comments