public void Unsubscribe(string eventName, ViewModelBase source, ICommand action) { var key = GetKey(eventName); var payload = new EventPayload { EventSource = source, EventAction = action }; lock (_eventRegistry) { if (_eventRegistry[key].Contains(payload)) { _eventRegistry[key].Remove(payload); } } }
public void Subscribe(string eventName, ViewModelBase source, ICommand action) { lock (_eventRegistry) { var key = GetKey(eventName); var payload = new EventPayload { EventSource = source, EventAction = action }; if (!_eventRegistry.ContainsKey(key)) { _eventRegistry.Add(key, new List <EventPayload>()); } if (!_eventRegistry[key].Contains(payload)) { _eventRegistry[key].Add(payload); } } }