private void OnCollectionWasChanged( Action action, DataObject dataObject) { KeyedCollectionWasChangedEventArgs <DataObject> args = new KeyedCollectionWasChangedEventArgs <DataObject>(action, dataObject); EventHandler <KeyedCollectionWasChangedEventArgs <DataObject> > handler = CollectionWasChanged; if (handler != null) { foreach (EventHandler <KeyedCollectionWasChangedEventArgs <DataObject> > SingleCast in handler.GetInvocationList()) { System.ComponentModel.ISynchronizeInvoke syncInvoke = SingleCast.Target as System.ComponentModel.ISynchronizeInvoke; try { if ((syncInvoke != null) && (syncInvoke.InvokeRequired)) { syncInvoke.Invoke(SingleCast, new Object[] { this, args }); } else { SingleCast(this, args); } } catch { throw; } } } }
/// <summary> /// Обработчик изменения коллекции /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void EventHandlerDevicesCollectionWasChanged( object sender, KeyedCollectionWasChangedEventArgs <DeviceBase> e) { // В случае изменения коллекции переопределяем контекст lock (_SyncRoot) { _Context = new Context(_NetworkController.Devices.ToArray()); } }
/// <summary> /// Обработчик изменения коллекции /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void EventHandlerDevicesCollectionWasChanged( object sender, KeyedCollectionWasChangedEventArgs<DeviceBase> e) { // В случае изменения коллекции переопределяем контекст lock (_SyncRoot) { _Context = new Context(_NetworkController.Devices.ToArray()); } }
/// <summary> /// Обработчик события изменения списка устройств /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void EventHandler_DevicesListWasChanged( object sender, KeyedCollectionWasChangedEventArgs <DeviceBase> e) { switch (e.Action) { case Action.Adding: { // Если добавляется устройство подключем его события //e.Item.DataWasChanged += DeviceChangedData; //e.Item.DeviceChangedStatus += DeviceChangedData; break; } case Action.Removing: { // Если удаляется устройство отключаем его события //e.Item.DataWasChanged -= DeviceChangedData; //e.Item.DeviceChangedStatus -= DeviceChangedStatus; break; } } }
/// <summary> /// Обработчик события изменения кол-ва устройств /// в сети /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void EventHandlerDevicesAmountWasChanged( object sender, KeyedCollectionWasChangedEventArgs <DeviceBase> e) { return; }
/// <summary> /// Обработчик события изменения кол-ва устройств /// в сети /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void EventHandlerDevicesAmountWasChanged( object sender, KeyedCollectionWasChangedEventArgs<DeviceBase> e) { return; }
/// <summary> /// Обработчик события изменения списка устройств /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void EventHandler_DevicesListWasChanged( object sender, KeyedCollectionWasChangedEventArgs<DeviceBase> e) { switch (e.Action) { case Action.Adding: { // Если добавляется устройство подключем его события //e.Item.DataWasChanged += DeviceChangedData; //e.Item.DeviceChangedStatus += DeviceChangedData; break; } case Action.Removing: { // Если удаляется устройство отключаем его события //e.Item.DataWasChanged -= DeviceChangedData; //e.Item.DeviceChangedStatus -= DeviceChangedStatus; break; } } }