Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase NotifyParentPropertyAttribute

 

Publicado: octubre de 2016

Indica que la propiedad principal se notifica cuando se modifica el valor de la propiedad que se aplica este atributo. Esta clase no puede heredarse.

Espacio de nombres:   System.ComponentModel
Ensamblado:  System (en System.dll)

System.Object
  System.Attribute
    System.ComponentModel.NotifyParentPropertyAttribute

[AttributeUsageAttribute(AttributeTargets.Property)]
public sealed class NotifyParentPropertyAttribute : Attribute

NombreDescripción
System_CAPS_pubmethodNotifyParentPropertyAttribute(Boolean)

Inicializa una nueva instancia de la NotifyParentPropertyAttribute clase, utilizando el valor especificado para determinar si la propiedad primaria es una notificación de cambios en el valor de la propiedad.

NombreDescripción
System_CAPS_pubpropertyNotifyParent

Obtiene o establece un valor que indica si se debe notificar a la propiedad primaria de los cambios en el valor de la propiedad.

System_CAPS_pubpropertyTypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.(Heredado de Attribute).

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Obtiene un valor que indica si el objeto especificado es igual que el objeto actual.(Invalida Attribute.Equals(Object)).

System_CAPS_pubmethodGetHashCode()

Obtiene el código hash para este objeto.(Invalida Attribute.GetHashCode()).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodIsDefaultAttribute()

Obtiene un valor que indica si el valor actual del atributo es el valor predeterminado para el atributo.(Invalida Attribute.IsDefaultAttribute()).

System_CAPS_pubmethodMatch(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Heredado de Attribute).

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

NombreDescripción
System_CAPS_pubfieldSystem_CAPS_staticDefault

Indica el estado de atributo predeterminado, que la propiedad no debe notificar a la propiedad primaria de los cambios en su valor. Este campo es de solo lectura.

System_CAPS_pubfieldSystem_CAPS_staticNo

Indica que la propiedad parent no es recibirán una notificación de cambios en el valor de la propiedad. Este campo es de solo lectura.

System_CAPS_pubfieldSystem_CAPS_staticYes

Indica que la propiedad parent es una notificación de cambios en el valor de la propiedad. Este campo es de solo lectura.

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.(Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información del tipo de un objeto, que puede utilizarse para obtener la información del tipo de una interfaz. (Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de tipo de información que suministra un objeto (0 ó 1)

(Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.(Heredado de Attribute).

Aplicar NotifyParentPropertyAttribute a una propiedad si su propiedad principal debe recibir notificación de cambios en los valores de propiedad. Por ejemplo, en la ventana Propiedades, la DataGridView.RowTemplate propiedad anidadas como propiedades Height y DefaultCellStyle. Dichas propiedades anidadas están marcadas con NotifyParentPropertyAttribute(true) para que notifiquen a la propiedad principal que actualice su valor y mostrar cuando cambian los valores de la propiedad.

Para obtener más información sobre el uso de atributos, vea Extender metadatos mediante atributos.

En el ejemplo de código siguiente se muestra cómo utilizar el NotifyParentPropertyAttribute y la ExpandableObjectConverter clase para crear una propiedad expansible en un control personalizado.

using System;
using System.ComponentModel;
using System.Drawing;
using System.Globalization;
using System.Windows.Forms;

namespace ExpandableObjectDemo
{
    public partial class DemoControl : UserControl
    {
        BorderAppearance borderAppearanceValue = new BorderAppearance();
        private System.ComponentModel.IContainer components = null;

        public DemoControl()
        {
            InitializeComponent();
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        [Browsable(true)]
        [EditorBrowsable(EditorBrowsableState.Always)]
        [Category("Demo")]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public BorderAppearance Border
        {
            get
            {
                return this.borderAppearanceValue;
            }

            set
            {
                this.borderAppearanceValue = value;
            }
        }

        private void InitializeComponent()
        {
            components = new System.ComponentModel.Container();
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        }
    }

    [TypeConverter(typeof(BorderAppearanceConverter))]
    public class BorderAppearance
    {
        private int borderSizeValue = 1;
        private Color borderColorValue = Color.Empty;

        [Browsable(true),
        NotifyParentProperty(true),
        EditorBrowsable(EditorBrowsableState.Always),
        DefaultValue(1)]
        public int BorderSize
        {
            get
            {
                return borderSizeValue;
            }
            set
            {
                if (value < 0)
                {
                    throw new ArgumentOutOfRangeException(
                        "BorderSize",
                        value,
                        "must be >= 0");
                }

                if (borderSizeValue != value)
                {
                    borderSizeValue = value;
                }
            }
        }

        [Browsable(true)]
        [NotifyParentProperty(true)]
        [EditorBrowsable(EditorBrowsableState.Always)]
        [DefaultValue(typeof(Color), "")]
        public Color BorderColor
        {
            get
            {
                return borderColorValue;
            }
            set
            {
                if (value.Equals(Color.Transparent))
                {
                    throw new NotSupportedException("Transparent colors are not supported.");
                }

                if (borderColorValue != value)
                {
                    borderColorValue = value;
                }
            }
        }
    }

    public class BorderAppearanceConverter : ExpandableObjectConverter
    {
        // This override prevents the PropertyGrid from 
        // displaying the full type name in the value cell.
        public override object ConvertTo(
            ITypeDescriptorContext context,
            CultureInfo culture,
            object value,
            Type destinationType)
        {
            if (destinationType == typeof(string))
            {
                return "";
            }

            return base.ConvertTo(
                context,
                culture,
                value,
                destinationType);
        }
    }
}

.NET Framework
Disponible desde 1.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: