public static void AddHandler(IDoubleActionProvider provider, DoubleActionEventHandler handler) { DoubleActionDispatcher dispatcher; if (map.ContainsKey(provider)) { dispatcher = map[provider]; } else { dispatcher = new DoubleActionDispatcher(provider); map.Add(provider, dispatcher); } dispatcher.DoubleActionEvent += handler; }