NotifyParentPropertyAttribute Class
Indicates that the parent property is notified when the value of the property that this attribute is applied to is modified. This class cannot be inherited.
Assembly: System (in System.dll)
| Name | Description | |
|---|---|---|
![]() | NotifyParentPropertyAttribute(Boolean) | Initializes a new instance of the NotifyParentPropertyAttribute class, using the specified value to determine whether the parent property is notified of changes to the value of the property. |
| Name | Description | |
|---|---|---|
![]() | NotifyParent | Gets or sets a value indicating whether the parent property should be notified of changes to the value of the property. |
![]() | TypeId |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Gets a value indicating whether the specified object is the same as the current object.(Overrides Attribute.Equals(Object).) |
![]() | GetHashCode() | Gets the hash code for this object.(Overrides Attribute.GetHashCode().) |
![]() | GetType() | |
![]() | IsDefaultAttribute() | Gets a value indicating whether the current value of the attribute is the default value for the attribute.(Overrides Attribute.IsDefaultAttribute().) |
![]() | Match(Object) | When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.(Inherited from Attribute.) |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() ![]() | Default | Indicates the default attribute state, that the property should not notify the parent property of changes to its value. This field is read-only. |
![]() ![]() | No | Indicates that the parent property is not be notified of changes to the value of the property. This field is read-only. |
![]() ![]() | Yes | Indicates that the parent property is notified of changes to the value of the property. This field is read-only. |
| Name | Description | |
|---|---|---|
![]() ![]() | _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) | Maps a set of names to a corresponding set of dispatch identifiers.(Inherited from Attribute.) |
![]() ![]() | _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) | Retrieves the type information for an object, which can be used to get the type information for an interface.(Inherited from Attribute.) |
![]() ![]() | _Attribute.GetTypeInfoCount(UInt32) | Retrieves the number of type information interfaces that an object provides (either 0 or 1).(Inherited from Attribute.) |
![]() ![]() | _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) | Provides access to properties and methods exposed by an object.(Inherited from Attribute.) |
Apply NotifyParentPropertyAttribute to a property if its parent property should receive notification of changes to the property's values. For example, in the Properties window, the DataGridView.RowTemplate property has nested properties such as Height and DefaultCellStyle. These nested properties are marked with NotifyParentPropertyAttribute(true) so they notify the parent property to update its value and display when the property values change.
For more information about using attributes, see Extending Metadata Using Attributes.
The following code example demonstrates how to use the NotifyParentPropertyAttribute and the ExpandableObjectConverter class to create an expandable property on a custom control.
Imports System Imports System.ComponentModel Imports System.Drawing Imports System.Globalization Imports System.Windows.Forms Public Class DemoControl Inherits UserControl Private borderAppearanceValue As New BorderAppearance() Private components As System.ComponentModel.IContainer = Nothing Public Sub New() InitializeComponent() End Sub Protected Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso (components IsNot Nothing) Then components.Dispose() End If MyBase.Dispose(disposing) End Sub <Browsable(True), _ EditorBrowsable(EditorBrowsableState.Always), _ Category("Demo"), _ DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _ Public Property Border() As BorderAppearance Get Return Me.borderAppearanceValue End Get Set(ByVal value As BorderAppearance) Me.borderAppearanceValue = value End Set End Property Private Sub InitializeComponent() components = New System.ComponentModel.Container() Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font End Sub End Class <TypeConverter(GetType(BorderAppearanceConverter))> _ Public Class BorderAppearance Private borderSizeValue As Integer = 1 Private borderColorValue As Color = Color.Empty <Browsable(True), NotifyParentProperty(True), EditorBrowsable(EditorBrowsableState.Always), DefaultValue(1)> _ Public Property BorderSize() As Integer Get Return borderSizeValue End Get Set If value < 0 Then Throw New ArgumentOutOfRangeException("BorderSize", value, "must be >= 0") End If If borderSizeValue <> value Then borderSizeValue = value End If End Set End Property <Browsable(True), NotifyParentProperty(True), EditorBrowsable(EditorBrowsableState.Always), DefaultValue(GetType(Color), "")> _ Public Property BorderColor() As Color Get Return borderColorValue End Get Set If value.Equals(Color.Transparent) Then Throw New NotSupportedException("Transparent colors are not supported.") End If If borderColorValue <> value Then borderColorValue = value End If End Set End Property End Class Public Class BorderAppearanceConverter Inherits ExpandableObjectConverter ' This override prevents the PropertyGrid from ' displaying the full type name in the value cell. Public Overrides Function ConvertTo(ByVal context As ITypeDescriptorContext, ByVal culture As CultureInfo, ByVal value As Object, ByVal destinationType As Type) As Object If destinationType Is GetType(String) Then Return "" End If Return MyBase.ConvertTo(context, culture, value, destinationType) End Function End Class
Available since 1.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.





