private async void SourceFoldersCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { await AsyncHelper.ExecuteEventHandlerTask(this, async() => { switch (e.Action) { case NotifyCollectionChangedAction.Add: await AddMovies(e.NewItems.Cast <string>()); break; case NotifyCollectionChangedAction.Remove: RemoveMovies(e.OldItems.Cast <string>()); break; case NotifyCollectionChangedAction.Replace: RemoveMovies(e.OldItems.Cast <string>()); await AddMovies(e.NewItems.Cast <string>()); break; case NotifyCollectionChangedAction.Reset: Movies.Clear(); break; } }); }
public MovieSetViewModel(IFileSystemService fileSystemService, IMovieViewModelFactory viewModelFactory, IMovieMetadataService metadataService, IProgressManagerViewModel progressManager, IBusyProvider busyProvider, IDialogViewer dialogViewer, string setName) : base(busyProvider, dialogViewer, null) { _fileSystemService = fileSystemService; _metadataService = metadataService; _busyProvider = busyProvider; SetName = DisplayNameInternal = setName; Fanart = viewModelFactory.GetImage(new SetFanartImageStrategy(metadataService, this)); Poster = viewModelFactory.GetImage(new SetPosterImageStrategy(metadataService, this)); RefreshCommand = new RefreshMetadataCommand(this); UpdateCommand = new UpdateMetadataCommand(this, progressManager, busyProvider); SaveCommand = new SaveMetadataCommand(this); #pragma warning disable 4014 // Fire and forget the refresh AsyncHelper.ExecuteEventHandlerTask(this, Refresh); #pragma warning restore 4014 }
private async void MusicSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { await AsyncHelper.ExecuteEventHandlerTask(this, async() => { var newItem = (ITreeViewItemViewModel)e.NewValue; await newItem.Load(); }); }
private async void MusicExpanded(object sender, RoutedEventArgs e) { await AsyncHelper.ExecuteEventHandlerTask(this, async() => { var treeViewItem = (TreeViewItem)e.OriginalSource; var treeViewItemViewModel = (ITreeViewItemViewModel)treeViewItem.DataContext; await treeViewItemViewModel.LoadChildren(); }); }
private async void HyperlinkClick(object sender, RoutedEventArgs e) { await AsyncHelper.ExecuteEventHandlerTask(this, async() => { IImageViewModel images = await FindAvailableImages(); ContentControl control = FindParentMainContentControl(this); images.OriginalContent = BindingOperations.GetBinding(control, ContentProperty); control.Content = images; }); }
private void ActorsListSourceUpdate(object sender, EventArgs e) { ItemCollection items = ActorsList.Items; var sourceCollections = (INotifyCollectionChanged)items.SourceCollection; if (sourceCollections != null) { var autoscroller = new NotifyCollectionChangedEventHandler((s1, e1) => { object selectedItem = null; switch (e1.Action) { case NotifyCollectionChangedAction.Add: case NotifyCollectionChangedAction.Move: selectedItem = e1.NewItems[e1.NewItems.Count - 1]; break; case NotifyCollectionChangedAction.Remove: if (items.Count < e1.OldStartingIndex) { selectedItem = items[e1.OldStartingIndex - 1]; } else if (items.Count > 0) { selectedItem = items[0]; } break; case NotifyCollectionChangedAction.Reset: if (items.Count > 0) { selectedItem = items[0]; } break; } if (selectedItem != null) { items.MoveCurrentTo(selectedItem); ScrollToEnd(); #pragma warning disable 4014 // Fire and forget AsyncHelper.ExecuteEventHandlerTask(this, () => FocusOnFirstTextBox(selectedItem)); #pragma warning restore 4014 } }); sourceCollections.CollectionChanged += autoscroller; } }
private async void RefreshSpecificFolders(object sender, RoutedEventArgs e) { await AsyncHelper.ExecuteEventHandlerTask(this, Sources.RefreshSpecificFolders); }