예제 #1
0
        public virtual void OpenViewModel <TParameters>(TParameters parameters, Action closedCallback)
        {
            var parametersType         = parameters.GetType();
            var upbeatViewModelService = new UpbeatService(_updateOnRender, OpenViewModel, closedCallback);

            using (var d = new UpbeatServiceDeferrer(upbeatViewModelService))
            {
                var viewModel = upbeatViewModelService.Activate(
                    service => _viewModelInstantiators[parametersType](service, parameters),
                    vm => _openViewModels.Last() == vm,
                    async vm => await TryRemoveViewModelAsync(vm));
                _openViewModelServices[viewModel] = upbeatViewModelService;
                _openViewModels.Add(viewModel);
            }
        }
예제 #2
0
 public UpbeatServiceDeferrer(UpbeatService configurationService)
     : base(configurationService.Lock, configurationService.Unlock)
 {
 }