/// <summary> /// Unregisters the specified sender. /// </summary> /// <param name="sender">The sender.</param> /// <param name="message">The message.</param> public void Unregister(object sender, DispatcherMessages message) { if (_internalList.Where(i => i.Key == message).Count() > 0) { foreach (var callback in _internalList[message]) { if (callback.Target == sender) { _internalList.Remove(message); } } } }
/// <summary> /// Notify all colleagues that are registed to the /// specific message /// </summary> /// <param name="message">The message for the notify by</param> /// <param name="args">The arguments for the message</param> public void NotifyColleagues(DispatcherMessages message, object args) { if (_internalList.ContainsKey(message)) { //forward the message to all listeners foreach (var callback in _internalList[message]) { callback(args); } } }
/// <summary> /// Unregisters the specified sender. /// </summary> /// <param name="sender">The sender.</param> /// <param name="message">The message.</param> public void Unregister(object sender, DispatcherMessages message) { if (internalList.Where(i => i.Key == message).Count() > 0) { foreach (Action <object> callback in internalList[message]) { if (callback.Target == sender) { internalList.Remove(message); } } } }
/// <summary> /// Registers a Colleague to a specific message /// </summary> /// <param name="callback"> /// The callback to use /// when the message it seen /// </param> /// <param name="message"> /// The message to /// register to /// </param> public void Register(Action<Object> callback, DispatcherMessages message) { _internalList.AddValue(message, callback); }
/// <summary> /// Registers a Colleague to a specific message /// </summary> /// <param name="callback">The callback to use /// when the message it seen</param> /// <param name="message">The message to /// register to</param> public void Register(Action <Object> callback, DispatcherMessages message) { internalList.AddValue(message, callback); }