16
16
using System ;
17
17
using System . Collections . Generic ;
18
18
using System . Collections . ObjectModel ;
19
+ using System . Collections . Specialized ;
19
20
using System . ComponentModel ;
20
21
using System . IO ;
21
22
using System . Linq ;
@@ -123,6 +124,8 @@ public QuickAccessWidget()
123
124
OpenPropertiesCommand = new RelayCommand < FolderCardItem > ( OpenProperties ) ;
124
125
PinToFavoritesCommand = new RelayCommand < FolderCardItem > ( PinToFavorites ) ;
125
126
UnpinFromFavoritesCommand = new RelayCommand < FolderCardItem > ( UnpinFromFavorites ) ;
127
+
128
+ ItemsAdded . CollectionChanged += ItemsAdded_CollectionChanged ;
126
129
}
127
130
128
131
public delegate void QuickAccessCardInvokedEventHandler ( object sender , QuickAccessCardInvokedEventArgs e ) ;
@@ -270,8 +273,6 @@ await DispatcherQueue.EnqueueAsync(async () =>
270
273
SelectCommand = QuickAccessCardCommand
271
274
} ) ;
272
275
}
273
- var cardLoadTasks = ItemsAdded . Select ( cardItem => cardItem . LoadCardThumbnailAsync ( ) ) ;
274
- await Task . WhenAll ( cardLoadTasks ) ;
275
276
276
277
return ;
277
278
}
@@ -287,9 +288,6 @@ await DispatcherQueue.EnqueueAsync(async () =>
287
288
SelectCommand = QuickAccessCardCommand
288
289
} ) ;
289
290
}
290
-
291
- var cardLoadTasks = ItemsAdded . Select ( cardItem => cardItem . LoadCardThumbnailAsync ( ) ) ;
292
- await Task . WhenAll ( cardLoadTasks ) ;
293
291
}
294
292
else
295
293
foreach ( var itemToRemove in ItemsAdded . Where ( x => e . Paths . Contains ( x . Path ) ) . ToList ( ) )
@@ -314,9 +312,6 @@ private async void QuickAccessWidget_Loaded(object sender, RoutedEventArgs e)
314
312
}
315
313
316
314
App . QuickAccessManager . UpdateQuickAccessWidget += ModifyItem ;
317
-
318
- var cardLoadTasks = ItemsAdded . Select ( cardItem => cardItem . LoadCardThumbnailAsync ( ) ) ;
319
- await Task . WhenAll ( cardLoadTasks ) ;
320
315
}
321
316
322
317
private void QuickAccessWidget_Unloaded ( object sender , RoutedEventArgs e )
@@ -325,6 +320,15 @@ private void QuickAccessWidget_Unloaded(object sender, RoutedEventArgs e)
325
320
App . QuickAccessManager . UpdateQuickAccessWidget -= ModifyItem ;
326
321
}
327
322
323
+ private async void ItemsAdded_CollectionChanged ( object ? sender , NotifyCollectionChangedEventArgs e )
324
+ {
325
+ if ( e . Action is NotifyCollectionChangedAction . Add )
326
+ {
327
+ foreach ( FolderCardItem cardItem in e . NewItems ! )
328
+ await cardItem . LoadCardThumbnailAsync ( ) ;
329
+ }
330
+ }
331
+
328
332
private void MenuFlyout_Opening ( object sender )
329
333
{
330
334
var pinToFavoritesItem = ( sender as MenuFlyout ) ? . Items . SingleOrDefault ( x => x . Name == "PinToFavorites" ) ;
@@ -416,8 +420,8 @@ public Task RefreshWidget()
416
420
}
417
421
418
422
public void Dispose ( )
419
- {
420
-
423
+ {
424
+ ItemsAdded . CollectionChanged -= ItemsAdded_CollectionChanged ;
421
425
}
422
426
}
423
427
}
0 commit comments