İngilizce dilinde oku

Aracılığıyla paylaş


NotifyParentPropertyAttribute Sınıf

Tanım

Bu özniteliğin uygulandığı özelliğin değeri değiştirildiğinde üst özelliğin bildirildiğini gösterir. Bu sınıf devralınamaz.

C#
[System.AttributeUsage(System.AttributeTargets.Property)]
public sealed class NotifyParentPropertyAttribute : Attribute
C#
public sealed class NotifyParentPropertyAttribute : Attribute
Devralma
NotifyParentPropertyAttribute
Öznitelikler

Örnekler

Aşağıdaki kod örneği, özel denetimde genişletilebilir bir özellik oluşturmak için ve ExpandableObjectConverter sınıfının nasıl kullanılacağını NotifyParentPropertyAttribute gösterir.

C#
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);
        }
    }
}

Açıklamalar

Üst özelliğinin özelliğin değerlerinde yapılan değişikliklerle ilgili bildirim alması gerekiyorsa özelliğe uygulayın NotifyParentPropertyAttribute . Örneğin, Özellikler penceresi özelliği ve DataGridView.RowTemplateDefaultCellStylegibi Height iç içe özelliklere sahiptir. Bu iç içe özellikler ile NotifyParentPropertyAttribute(true) işaretlendiğinden, üst özelliğe değerini güncelleştirmesini ve özellik değerleri değiştiğinde görüntülenmesini bildirirler.

Öznitelikleri kullanma hakkında daha fazla bilgi için bkz . Öznitelikler.

Oluşturucular

NotifyParentPropertyAttribute(Boolean)

Üst özelliğe özelliğin değerindeki NotifyParentPropertyAttribute değişiklikler bildirilip bildirilmediğini belirlemek için belirtilen değeri kullanarak sınıfının yeni bir örneğini başlatır.

Alanlar

Default

Özelliğin üst özelliğine değerindeki değişiklikleri bildirmemesi gerektiğini varsayılan öznitelik durumunu gösterir. Bu alan salt okunur durumdadır.

No

Üst özelliğe, özelliğin değerindeki değişiklikler bildirilmediğini gösterir. Bu alan salt okunur durumdadır.

Yes

Üst özelliğe, özelliğin değerindeki değişiklikler bildirildiğini gösterir. Bu alan salt okunur durumdadır.

Özellikler

NotifyParent

Üst özelliğin, özelliğin değerindeki değişikliklerden haberdar edilip edilmeyeceğini belirten bir değer alır veya ayarlar.

TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneyle aynı olup olmadığını belirten bir değer alır.

GetHashCode()

Bu nesnenin karma kodunu alır.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
IsDefaultAttribute()

Özniteliğin geçerli değerinin öznitelik için varsayılan değer olup olmadığını belirten bir değer alır.

IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır

Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Ayrıca bkz.