예제 #1
0
            /// <summary>
            /// Add or remove change listeners as needed
            /// </summary>
            public void AddOrRemoveChangeListener(ExtensionPropertyChangedEventHandler handler, EventHandlerAction action)
            {
                IPropertyProvider interfaceInstance;

                if (null != (interfaceInstance = myInstance) &&
                    0 != (interfaceInstance.ProviderFeatures & PropertyProviderFeatures.ChangeNotifications))
                {
                    if (action == EventHandlerAction.Add)
                    {
                        interfaceInstance.PropertyChanged += handler;
                    }
                    else
                    {
                        interfaceInstance.PropertyChanged -= handler;
                    }
                }
            }
예제 #2
0
		void IPropertyProviderService.AddOrRemoveChangeListener(Type extendableElementType, ExtensionPropertyChangedEventHandler handler, EventHandlerAction action)
		{
			if (extendableElementType == null)
			{
				throw new ArgumentNullException("extendableElementType");
			}
			if ((object)handler == null)
			{
				throw new ArgumentNullException("handler");
			}
			LinkedNode<ProviderInstance> providerNode;
			if (myProviderDictionary.TryGetValue(extendableElementType.TypeHandle, out providerNode))
			{
				while (providerNode != null)
				{
					providerNode.Value.AddOrRemoveChangeListener(handler, action);
					providerNode = providerNode.Next;
				}
			}
		}
예제 #3
0
			/// <summary>
			/// Add or remove change listeners as needed
			/// </summary>
			public void AddOrRemoveChangeListener(ExtensionPropertyChangedEventHandler handler, EventHandlerAction action)
			{
				IPropertyProvider interfaceInstance;
				if (null != (interfaceInstance = myInstance) &&
					0 != (interfaceInstance.ProviderFeatures & PropertyProviderFeatures.ChangeNotifications))
				{
					if (action == EventHandlerAction.Add)
					{
						interfaceInstance.PropertyChanged += handler;
					}
					else
					{
						interfaceInstance.PropertyChanged -= handler;
					}
				}
			}
예제 #4
0
        void IPropertyProviderService.AddOrRemoveChangeListener(Type extendableElementType, ExtensionPropertyChangedEventHandler handler, EventHandlerAction action)
        {
            if (extendableElementType == null)
            {
                throw new ArgumentNullException("extendableElementType");
            }
            if ((object)handler == null)
            {
                throw new ArgumentNullException("handler");
            }
            LinkedNode <CountedProviderInstance> providerNode;

            if (myProviderDictionary.TryGetValue(extendableElementType.TypeHandle, out providerNode))
            {
                while (providerNode != null)
                {
                    providerNode.Value.Instance.AddOrRemoveChangeListener(handler, action);
                    providerNode = providerNode.Next;
                }
            }
        }