/// <summary> /// Unregister a callback so it will no longer be called when this document is modified /// </summary> /// <param name="callback">Callback to unregister</param> public virtual void UnregisterChangeTracking(ITrackedDocumentNodeCallback callback) { lock (_callbacks) { _callbacks.RemoveAll(p => { ITrackedDocumentNodeCallback target; if (p.TryGetTarget(out target)) { return(target == callback); } else { return(false); } }); } }
/// <summary> /// Register a callback to be triggered when this document is modified /// </summary> /// <param name="callback">Callback to be triggered</param> public virtual void RegisterChangeTracking(ITrackedDocumentNodeCallback callback) { lock (_callbacks) { var isAlreadyTracked = _callbacks.Any(p => { ITrackedDocumentNodeCallback target; if (p.TryGetTarget(out target)) { return(target == callback); } else { return(false); } }); if (!isAlreadyTracked) { _callbacks.Add(new WeakReference <ITrackedDocumentNodeCallback>(callback)); } } }
/// <summary> /// Unregister a callback so it will no longer be called when this document is modified /// </summary> /// <param name="callback">Callback to unregister</param> public virtual void UnregisterChangeTracking(ITrackedDocumentNodeCallback callback) { lock (_callbacks) { _callbacks.RemoveAll(p => { ITrackedDocumentNodeCallback target; if (p.TryGetTarget(out target)) { return target == callback; } else { return false; } }); } }
/// <summary> /// Register a callback to be triggered when this document is modified /// </summary> /// <param name="callback">Callback to be triggered</param> public virtual void RegisterChangeTracking(ITrackedDocumentNodeCallback callback) { lock (_callbacks) { var isAlreadyTracked = _callbacks.Any(p => { ITrackedDocumentNodeCallback target; if (p.TryGetTarget(out target)) { return target == callback; } else { return false; } }); if (!isAlreadyTracked) { _callbacks.Add(new WeakReference<ITrackedDocumentNodeCallback>(callback)); } } }
public void UnregisterChangeTracking(ITrackedDocumentNodeCallback callback) { _documentNode.UnregisterChangeTracking(callback); }