Ejemplo n.º 1
0
        // Remove a handler to the named property (empty means "any property")
        private void PrivateRemoveHandler(Type type, EventHandler <PropertyChangedEventArgs> handler, string propertyName)
        {
            Debug.Assert(handler != null && type != null && propertyName != null,
                         "Handler, type, and propertyName of event cannot be null");

            using (WriteLock)
            {
                TypeRecord tr = (TypeRecord)this[type];

                if (tr != null)
                {
                    tr.RemoveHandler(handler, propertyName);

                    if (tr.IsEmpty)
                    {
                        tr.StopListening();
                        Remove(tr.Type);
                    }
                }
            }
        }