Beispiel #1
0
        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;
            }
        }
Beispiel #7
0
 private async void RefreshSpecificFolders(object sender, RoutedEventArgs e)
 {
     await AsyncHelper.ExecuteEventHandlerTask(this, Sources.RefreshSpecificFolders);
 }