/// <summary> /// /// </summary> /// <param name="value"></param> private void InstallEntryHooks(TKey key, TValue value) { if (TypeIsUpdateSerializable && value != null) { Action <ModificationEventArgs> callback = (e) => { _modifiedEntries.Add(key); RaiseModifiedEvent(e); }; _entryValueModifiedCallbacks.Add(key, callback); INotifyModified notifyModified = value as INotifyModified; notifyModified.Modified += callback; } }
/// <summary> /// /// </summary> /// <param name="key"></param> /// <param name="value"></param> private void UninstallEntryHooks(TKey key, TValue value) { if (TypeIsUpdateSerializable && value != null) { Action <ModificationEventArgs> callback; if (!_entryValueModifiedCallbacks.TryGetValue(key, out callback)) { throw new Exception("Cannot find entry callback."); } _entryValueModifiedCallbacks.Remove(key); INotifyModified notifyModified = value as INotifyModified; notifyModified.Modified -= callback; } }