(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

NotifyParentPropertyAttribute-Klasse

Gibt an, dass die übergeordnete Eigenschaft benachrichtigt wird, wenn der Wert der Eigenschaft, der dieses Attribut zugeordnet ist, geändert wird. Diese Klasse kann nicht vererbt werden.

System.Object
  System.Attribute
    System.ComponentModel.NotifyParentPropertyAttribute

Namespace:  System.ComponentModel
Assembly:  System (in System.dll)

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

Der NotifyParentPropertyAttribute-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeNotifyParentPropertyAttributeInitialisiert eine neue Instanz der NotifyParentPropertyAttribute-Klasse mit dem angegebenen Wert, um zu bestimmen, ob die übergeordnete Eigenschaft über Änderungen des Eigenschaftswerts benachrichtigt werden soll.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftNotifyParentRuft einen Wert ab, der angibt, ob die übergeordnete Eigenschaft über Änderungen des Eigenschaftswerts benachrichtigt wird, oder legt diesen fest.
Öffentliche EigenschaftTypeIdBei Implementierung in einer abgeleiteten Klasse wird ein eindeutiger Bezeichner für dieses Attribute abgerufen. (Von Attribute geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeEqualsRuft einen Wert ab, der angibt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Überschreibt Attribute.Equals(Object).)
Öffentliche MethodeGetHashCodeRuft den Hashcode für dieses Objekt ab. (Überschreibt Attribute.GetHashCode().)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeIsDefaultAttributeRuft einen Wert ab, der angibt, ob der aktuelle Wert des Attributs dessen Standardwert ist. (Überschreibt Attribute.IsDefaultAttribute().)
Öffentliche MethodeMatchBeim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht. (Von Attribute geerbt.)
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliches FeldStatischer MemberDefaultGibt den Standardzustand des Attributs an, demzufolge die übergeordnete Eigenschaft keine Benachrichtigung darüber erhält, dass der Eigenschaftswert der Eigenschaft geändert wurde. Dieses Feld ist schreibgeschützt.
Öffentliches FeldStatischer MemberNoGibt an, dass die übergeordnete Eigenschaft nicht über Änderungen des Eigenschaftswerts benachrichtigt wird. Dieses Feld ist schreibgeschützt.
Öffentliches FeldStatischer MemberYesGibt an, dass die übergeordnete Eigenschaft über Änderungen des Eigenschaftswerts benachrichtigt wird. Dieses Feld ist schreibgeschützt.
Zum Seitenanfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetIDsOfNamesOrdnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoRuft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoCountRuft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.InvokeStellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. (Von Attribute geerbt.)
Zum Seitenanfang

Ordnen Sie NotifyParentPropertyAttribute einer Eigenschaft zu, wenn die übergeordnete Eigenschaft bei einer Änderung der Eigenschaftswerte benachrichtigt werden soll. Angenommen, die DataGridView.RowTemplate-Eigenschaft im Eigenschaftenfenster weist geschachtelte Eigenschaften wie Height und DefaultCellStyle auf. Diese geschachtelten Eigenschaften sind mit NotifyParentPropertyAttribute(true) gekennzeichnet werden, sodass sie bei einer Änderung der Eigenschaftswerte die übergeordnete Eigenschaft benachrichtigen, die daraufhin die eigenen Werte aktualisiert und anzeigt.

Weitere Informationen zum Verwenden von Attributen finden Sie unter Erweitern von Metadaten mithilfe von Attributen.

Im folgenden Codebeispiel wird veranschaulicht, wie mithilfe der NotifyParentPropertyAttribute-Klasse und der ExpandableObjectConverter-Klasse eine erweiterbare Eigenschaft für ein benutzerdefiniertes Steuerelement erstellt wird.


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

Unterstützt in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft