Catel.Data.ChangeNotificationWrapper.UnsubscribeFromAllEvents C# (CSharp) Method

UnsubscribeFromAllEvents() public method

Unsubscribes from all events.
public UnsubscribeFromAllEvents ( ) : void
return void
        public void UnsubscribeFromAllEvents()
        {
            lock (_lockObject)
            {
                if (_weakPropertyChangedListeners != null)
                {
                    foreach (var weakListener in _weakPropertyChangedListeners)
                    {
                        weakListener.Detach();
                    }

                    _weakPropertyChangedListeners.Clear();
                }

                if (_weakCollectionChangedListeners != null)
                {
                    foreach (var weakListener in _weakCollectionChangedListeners)
                    {
                        weakListener.Detach();
                    }

                    _weakCollectionChangedListeners.Clear();
                }
            }
        }

Usage Example

            public void UnsubscribesFromCollectionChangedEvents()
            {
                var collection = new ObservableCollection<TestModel>();
                var wrapper = new ChangeNotificationWrapper(collection);

                wrapper.UnsubscribeFromAllEvents();

                bool eventRaised = false;
                wrapper.CollectionChanged += (sender, e) => eventRaised = true;

                collection.Add(new TestModel());

                Assert.IsFalse(eventRaised);
            }
All Usage Examples Of Catel.Data.ChangeNotificationWrapper::UnsubscribeFromAllEvents