private AsyncActivityResult SetupAsyncActivity()
        {
            var requestCode = _nextAsyncActivityRequestCode++;
            var result      = new AsyncActivityResult(requestCode);

            _pendingAsyncActivities.Add(requestCode, result);

            return(result);
        }
Пример #2
0
        protected override void ShowDialog()
        {
            var viewModel = ActivityArgs.GetArgs <DataItemChooserViewModel <T> >();
            var window    = new ViewControllerWindow
            {
                DataContext = viewModel,
                Content     = new DataItemChooserView {
                    Width = 300, Margin = new Thickness(10, 5, 10, 10)
                },
                Title = viewModel.Header,
            }.RemoveIcon().HideMinMaxButton();
            var r      = window.ShowDialog();
            var result = new AsyncActivityResult <DataItemChooserViewModel <T> >(r.GetValueOrDefault(false), viewModel);

            Completion.TrySetResult(result);
        }
Пример #3
0
        protected override void ShowDialog()
        {
            var viewModel = ActivityArgs.GetArgs <InputBoxViewModel>() ?? new InputBoxViewModel();
            var window    = new ViewControllerWindow
            {
                DataContext = viewModel,
                Content     = new InputBox {
                    Width = 300, Margin = new Thickness(10, 5, 10, 10)
                },
                Title         = viewModel.Header,
                SizeToContent = SizeToContent.WidthAndHeight,
                ResizeMode    = ResizeMode.NoResize,
            }.RemoveIcon().HideMinMaxButton();
            var r      = window.ShowDialog();
            var result = new AsyncActivityResult <InputBoxViewModel>(r.GetValueOrDefault(false), viewModel);

            Completion.TrySetResult(result);
        }
Пример #4
0
 private void HandleCompletedOrCanceled(DisposeManager cleanup, Window window, ProgressViewModel viewModel, IProgressItemViewModel <T> itemViewModel, bool isCompleted)
 {
     cleanup.Dispose();
     window.Dispatcher.CheckedInvoke(() =>
     {
         viewModel.ProgressItems.Remove(itemViewModel);
         if (viewModel.ProgressItems.Count == 0)
         {
             Task.Delay(1000);
             if (_window != null && _window.IsVisible)
             {
                 viewModel.OkCommand.TryExecute(null);
             }
             _window    = null;
             var result = new AsyncActivityResult <IProgressItemViewModel <T> >(isCompleted, itemViewModel);
             Completion.TrySetResult(result);
         }
     });
 }