private void Observe(ObservableEvent.ValueChanged <IReadOnlyDictionary <TKey, TValue> > valueGetter, bool callbackImmediately) { ValueChanged += valueGetter; if (callbackImmediately) { valueGetter(Value); } }
private void Observe(ObservableEvent.ValueChanged <IReadOnlyList <T> > valueGetter, bool callbackImmediately) { ValueChanged += valueGetter; if (callbackImmediately) { valueGetter(Value); } }
public void StopObserving(ObservableEvent.ValueChanged <IReadOnlyList <T> > valueGetter) => ValueChanged -= valueGetter;
public void ObserveFutureChanges(ObservableEvent.ValueChanged <IReadOnlyList <T> > valueGetter) => Observe(valueGetter, callbackImmediately: false);
public void StopObserving(ObservableEvent.ValueChanged <IReadOnlyDictionary <TKey, TValue> > valueGetter) => ValueChanged -= valueGetter;
public void Observe(ObservableEvent.ValueChanged <IReadOnlyDictionary <TKey, TValue> > valueGetter) { onValueChanged += valueGetter; valueGetter(_dictionary); }
public void ObserveFutureChanges(ObservableEvent.ValueChanged <IReadOnlyDictionary <TKey, TValue> > valueGetter) => Observe(valueGetter, callbackImmediately: false);
public void Observe(ObservableEvent.ValueChanged <IReadOnlyList <T> > valueGetter) { onValueChanged += valueGetter; valueGetter(_list); }
public void StopObserving(ObservableEvent.ValueChanged <T> valueGetter) => ValueChanged -= valueGetter;
public void Observe(ObservableEvent.ValueChanged <T> valueGetter) => Observe(valueGetter, callbackImmediately: true);
private static void UnhookCallbackForFutureChanges <T>(IObservable <T> observable, ObservableEvent.ValueChanged <T> receiver) => observable.StopObserving(receiver);
private static void HookCallbackForFutureChanges <T>(IObservable <T> observable, ObservableEvent.ValueChanged <T> receiver) => observable.ObserveFutureChanges(receiver);