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; }
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); }
protected abstract void OnClosing(T window, ICloseableViewModel viewModel);
private void CloseableViewModelOnClosed(ICloseableViewModel sender, ViewModelClosedEventArgs e) { TryCloseViewModel(e.ViewModel, e.Parameter); }