private void DeletePages(object param) { if (!CanDeletePages(param)) { return; } var list = ((IList)param).Cast <PageViewModel>().ToList(); var dialog = DialogProvider.CreateInteraction(); dialog.Content = DialogResources.PageCollectionViewer_DeleteDialogContent; dialog.Title = DialogResources.PageCollectionViewer_DeleteDialogTitle; dialog.ActionComplete += (sender, args) => { if (!args.IsAccept) { return; } Application.Current.Dispatcher.Invoke(() => { foreach (var page in list) { if (WindowViewModel.CurrentDocument.CanDeletePage) { WindowViewModel.CurrentDocument.Pages.Remove(page); } } }); }; dialog.ShowInteraction(); }