Exemplo n.º 1
0
        public void OverrideMetadata(Type forType, PropertyMetadata typeMetadata)
        {
            if (forType == null)
            {
                throw new ArgumentNullException("forType");
            }
            if (typeMetadata == null)
            {
                throw new ArgumentNullException("typeMetadata");
            }
            if (!typeof(DependencyObject).IsAssignableFrom(forType))
            {
                throw new ArgumentException(string.Format(
                                                "OverrideMetadata type '{0}' must inherit from DependencyObject", forType.FullName));
            }
            if (typeMetadata.HasDefaultValue)
            {
                ValidateDefaultValue(Name, PropertyType, OwnerType, typeMetadata.DefaultValue);
            }

            IntPtr forTypePtr = Noesis.Extend.EnsureNativeType(forType, false);

            Noesis_OverrideMetadata(forTypePtr, swigCPtr, PropertyMetadata.getCPtr(typeMetadata));

            DependencyPropertyRegistry.Override(this, forType, typeMetadata);
        }