/// <summary> /// Removes the specified observable. /// </summary> /// <param name="observable">The observable.</param> public void Remove([NotNull] IPropertyObservable observable) { if (observable == null) { throw new ArgumentNullException(nameof(observable)); } if (!this.dictionary.TryGetValue(observable, out var handler)) { return; } this.dictionary.Remove(observable); CommandManager.RequerySuggested -= handler; }
/// <summary> /// Adds the specified observable. /// </summary> /// <param name="observable">The observable.</param> public void Add([NotNull] IPropertyObservable observable) { if (observable == null) { throw new ArgumentNullException(nameof(observable)); } if (this.dictionary.TryGetValue(observable, out _)) { return; } void Handler(object sender, EventArgs args) => observable.RaisePropertyChanged(); this.dictionary.Add(observable, Handler); CommandManager.RequerySuggested += Handler; }