private void OnViewModelClosed(object sender, ViewModelClosedEventArgs e) { Log.Debug("ViewModel '{0}' is closed, automatically unregistering command from CompositeCommand", ViewModel); _compositeCommand.UnregisterCommand(Command); ViewModel.Closed -= OnViewModelClosed; ViewModel = null; }
private Task OnViewModelClosedAsync(object sender, ViewModelClosedEventArgs e) { Log.Debug("ViewModel '{0}' is closed, automatically unregistering command from CompositeCommand", ViewModel); _compositeCommand.UnregisterCommand(Command); ViewModel.ClosedAsync -= OnViewModelClosedAsync; ViewModel = null; return(TaskHelper.Completed); }
public void UnregistersCommandForExecution() { var vm = new CompositeCommandViewModel(); var compositeCommand = new CompositeCommand(); compositeCommand.RegisterCommand(vm.TestCommand1, vm); compositeCommand.RegisterCommand(vm.TestCommand2, vm); compositeCommand.UnregisterCommand(vm.TestCommand1); compositeCommand.Execute(); Assert.IsFalse(vm.IsTestCommand1Executed); Assert.IsTrue(vm.IsTestCommand2Executed); }
public void ThrowsArgumentNullExceptionForNullCommand() { var compositeCommand = new CompositeCommand(); ExceptionTester.CallMethodAndExpectException<ArgumentNullException>(() => compositeCommand.UnregisterCommand(null)); }