/* * Unbinding. */ public void Unbind(CommandBindingBase binding) { if (!_bindings.TryGetValue(binding.Event, out var bindings)) { return; } if (bindings.Remove(binding) && bindings.Count == 0) { UnbindAll(binding.Event); } }
private void AddBinding(EventBase key, CommandBindingBase binding) { if (!_bindings.ContainsKey(key)) { _bindings[key] = new List <CommandBindingBase> { binding } } ; else { _bindings[key].Add(binding); } }
private void UnbindOrScheduleIfOnce(CommandBindingBase binding) { if (!binding.IsOnce) { return; } if (_commandsExecutionIterationTokens > 0) { _bindingsToUnbind.Add(binding); } else { Unbind(binding); } }