Example #1
0
        protected override void OnClosing(Window window, ICloseableViewModel viewModel)
        {
            CancelEventHandler handler = null;

            handler = (s, e) =>
            {
                if (!viewModel.OnClosing())
                {
                    e.Cancel = true;
                    return;
                }

                window.Closing -= handler;
            };

            window.Closing += handler;
        }
        protected override void OnClosing(RadWindow window, ICloseableViewModel viewModel)
        {
            EventHandler <WindowPreviewClosedEventArgs> handler = null;

            handler = (s, e) =>
            {
                if (!viewModel.OnClosing())
                {
                    e.Cancel = true;
                    return;
                }

                window.PreviewClosed -= handler;
            };

            window.PreviewClosed += handler;
        }
Example #3
0
        public void Post(string header, ICloseableViewModel viewModel)
        {
            var newMessage = new Message(header, viewModel);

            newMessage.ViewModel.Closed
            .Take(1)
            .Subscribe(x =>
            {
                Message nextMessage = null;
                lock (_sync)
                {
                    _waitingMessages.Dequeue();

                    if (_waitingMessages.Any())
                    {
                        nextMessage = _waitingMessages.Peek();
                    }
                }

                if (nextMessage != null)
                {
                    _show.OnNext(nextMessage);
                }

                viewModel.Dispose();
            });

            bool show;

            lock (_sync)
            {
                _waitingMessages.Enqueue(newMessage);
                show = _waitingMessages.Count == 1;
            }

            if (show)
            {
                _show.OnNext(newMessage);
            }
        }
 private void CloseableViewModelOnClosed(ICloseableViewModel sender, ViewModelClosedEventArgs e)
 {
     _threadManager.Invoke(ExecutionMode.AsynchronousOnUiThread, this, NavigationService, e,
                           (provider, service, args) =>
     {
         if (ReferenceEquals(provider._closingViewModel, args.ViewModel))
         {
             return;
         }
         try
         {
             provider._closedFromViewModel = true;
             if (service.TryClose(args.ViewModel, args.Parameter as IDataContext))
             {
                 OnViewModelClosed(args.ViewModel, args.Parameter, provider, true);
             }
         }
         finally
         {
             provider._closedFromViewModel = false;
         }
     });
 }
 public Message(string header, ICloseableViewModel viewModel)
 {
     Header    = header;
     ViewModel = viewModel;
 }
 private void ViewModelOnClosed(ICloseableViewModel sender, ViewModelClosedEventArgs args)
 {
     RaiseClosed(args.Parameter);
 }
 private void ViewModelOnClosing(ICloseableViewModel sender, ViewModelClosingEventArgs args)
 {
     args.Cancel = !RaiseClosing(args.Parameter);
 }
 private void CloseableViewModelOnClosed(ICloseableViewModel sender, ViewModelClosedEventArgs e)
 {
     _threadManager.Invoke(ExecutionMode.AsynchronousOnUiThread, this, NavigationService, e,
         (provider, service, args) =>
         {
             if (ReferenceEquals(provider._closingViewModel, args.ViewModel))
                 return;
             try
             {
                 provider._closedFromViewModel = true;
                 if (service.TryClose(args.ViewModel, args.Parameter as IDataContext))
                     OnViewModelClosed(args.ViewModel, args.Parameter, provider, true);
             }
             finally
             {
                 provider._closedFromViewModel = false;
             }
         });
 }
 private void CloseableViewModelOnClosed(ICloseableViewModel sender, ViewModelClosedEventArgs e)
 {
     TryCloseViewModel(e.ViewModel, e.Parameter);
 }
Example #10
0
 protected abstract void OnClosing(T window, ICloseableViewModel viewModel);
 private void CloseableViewModelOnClosed(ICloseableViewModel sender, ViewModelClosedEventArgs e)
 {
     TryCloseViewModel(e.ViewModel, e.Parameter);
 }