/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void CheckedChanged(object sender, EventArgs e) { if (sender is RadioButton) { this.interval = TimeSpanUtil.ConvertMinutesToMilliseconds( Convert.ToDouble(((RadioButton)sender).Tag)); } else { if (((CheckBox)sender) == chkMonitSql) { this.monitSql = ((CheckBox)sender).Checked; } } if (ValueChanged != null) { Delegate[] subscribers = ValueChanged.GetInvocationList(); foreach (EventHandler target in subscribers) { target(this, new EventArgs()); } } }
public void DeAttachEvents() { Delegate[] subscribers = ValueChanged.GetInvocationList(); for (int i = 0; i < subscribers.Length; i++) { ValueChanged -= subscribers[i] as EventValueChanged; } }
public ValueChangedHandler[] GetPropertyChangedHandlers() { if (ValueChanged == null) { return(new ValueChangedHandler[0]); } return(ValueChanged.GetInvocationList().OfType <ValueChangedHandler>().ToArray()); }
/// <summary> /// This is just to be nice. A listener will not keep a publisher alive. /// </summary> /// <see> /// <cref>https://stackoverflow.com/a/298276</cref> /// </see> public void Cleanup() { OnDestroy(); var delegates = ValueChanged.GetInvocationList(); foreach (Delegate d in delegates) { ValueChanged -= (Action)d; } ServiceLocator.Get <IUIManager>() .UnbindProperty(this); }
/// <summary> /// Обработчик события - изменение значения любого из компонентов даты/времени /// </summary> private void onSelectedIndexChanged() { //Проверить наличие ведущего объекта if (!(m_objLeading == null)) { // изменить разность между собственным значением и значения ведущего объекта m_tsLeading = _value[(int)INDEX_VALUE.CURRENT] - m_objLeading.Value; } else { ; } // вызвать обработчик события - изменение значения объекта // , но только один и 1-ый из них // два обработчика когда объект ведущий (2-ой обработчик ведомого объекта) ValueChanged.GetInvocationList()[0].DynamicInvoke(this, EventArgs.Empty); }