コード例 #1
0
        /// <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;
        }
コード例 #2
0
        /// <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;
        }