Поделиться через


MergablePropertyAttribute Класс

Определение

Указывает, что это свойство можно объединить со свойствами, принадлежащими другим объектам в окне свойств.

public ref class MergablePropertyAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.All)]
public sealed class MergablePropertyAttribute : Attribute
public sealed class MergablePropertyAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.All)>]
type MergablePropertyAttribute = class
    inherit Attribute
type MergablePropertyAttribute = class
    inherit Attribute
Public NotInheritable Class MergablePropertyAttribute
Inherits Attribute
Наследование
MergablePropertyAttribute
Атрибуты

Примеры

В следующем примере помечается свойство, соответствующее слиянию.

public:
   [MergableProperty(true)]
   property int MyProperty 
   {
      int get()
      {
         // Insert code here.
         return 0;
      }
      void set( int value )
      {
         // Insert code here.
      }
   }
[MergableProperty(true)]
public int MyProperty
{
    get =>
        // Insert code here.
        0;
    set
    {
        // Insert code here.
    }
}
<MergableProperty(True)> _
Public Property MyProperty() As Integer
    Get
        ' Insert code here.
        Return 0
    End Get
    Set
        ' Insert code here.
    End Set 
End Property

В следующем примере показано, как проверить значение MergablePropertyAttribute для MyProperty. Сначала код получает PropertyDescriptorCollection все свойства объекта. Далее он индексирует в PropertyDescriptorCollection получение MyProperty. Затем он возвращает атрибуты для этого свойства и сохраняет их в переменной атрибутов.

В примере представлено два разных способа проверки значения MergablePropertyAttribute. Во втором фрагменте кода в примере вызывается Equals метод со значением static . В последнем фрагменте кода в примере используется AllowMerge свойство для проверки значения.

// Gets the attributes for the property.
AttributeCollection^ attributes = TypeDescriptor::GetProperties( this )[ "MyProperty" ]->Attributes;

// Checks to see if the value of the MergablePropertyAttribute is Yes.
if ( attributes[ MergablePropertyAttribute::typeid ]->Equals( MergablePropertyAttribute::Yes ) )
{
   // Insert code here.
}

// This is another way to see if the property is bindable.
MergablePropertyAttribute^ myAttribute = dynamic_cast<MergablePropertyAttribute^>(attributes[ MergablePropertyAttribute::typeid ]);
if ( myAttribute->AllowMerge )
{
   // Insert code here.
}
// Gets the attributes for the property.
AttributeCollection attributes =
   TypeDescriptor.GetProperties(this)["MyProperty"].Attributes;

// Checks to see if the value of the MergablePropertyAttribute is Yes.
if (attributes[typeof(MergablePropertyAttribute)].Equals(MergablePropertyAttribute.Yes))
{
    // Insert code here.
}

// This is another way to see if the property is bindable.
MergablePropertyAttribute myAttribute =
   (MergablePropertyAttribute)attributes[typeof(MergablePropertyAttribute)];
if (myAttribute.AllowMerge)
{
    // Insert code here.
}
' Gets the attributes for the property.
Dim attributes As AttributeCollection = _
    TypeDescriptor.GetProperties(Me)("MyProperty").Attributes

' Checks to see if the value of the MergablePropertyAttribute is Yes.
If attributes(GetType(MergablePropertyAttribute)).Equals(MergablePropertyAttribute.Yes) Then
    ' Insert code here.
End If 

' This is another way to see if the property is bindable.
Dim myAttribute As MergablePropertyAttribute = _
    CType(attributes(GetType(MergablePropertyAttribute)), MergablePropertyAttribute)
If myAttribute.AllowMerge Then
    ' Insert code here.
End If

Если вы помечаете класс с MergablePropertyAttributeпомощью этого класса, используйте следующий код, чтобы проверить значение.

AttributeCollection^ attributes = TypeDescriptor::GetAttributes( MyProperty );
if ( attributes[ MergablePropertyAttribute::typeid ]->Equals( MergablePropertyAttribute::Yes ) )
{
   // Insert code here.
}
AttributeCollection attributes =
    TypeDescriptor.GetAttributes(MyProperty);
if (attributes[typeof(MergablePropertyAttribute)].Equals(MergablePropertyAttribute.Yes))
{
    // Insert code here.
}
Dim attributes As AttributeCollection = TypeDescriptor.GetAttributes(MyProperty)
If attributes(GetType(MergablePropertyAttribute)).Equals(MergablePropertyAttribute.Yes) Then
    ' Insert code here.
End If

Комментарии

Свойства, помеченные набором MergablePropertyAttributetrue , можно объединить со свойствами, принадлежащими другим объектам в окне свойств. Свойства, помеченные набором MergablePropertyAttributefalse , должны отображаться отдельно. Значение по умолчанию — true.

Замечание

При помечаете свойство с MergablePropertyAttribute заданным значением true, значение этого атрибута присваивается постоянному члену Yes. Для свойства, помеченного свойством, заданным MergablePropertyAttributefalseзначением , является No. Таким образом, если вы хотите проверить значение этого атрибута в коде, необходимо указать атрибут как MergablePropertyAttribute.Yes или MergablePropertyAttribute.No.

Дополнительные сведения см. в разделе Атрибуты.

Конструкторы

Имя Описание
MergablePropertyAttribute(Boolean)

Инициализирует новый экземпляр класса MergablePropertyAttribute.

Поля

Имя Описание
Default

Указывает значение по умолчанию, т Yes. е. свойство можно объединить со свойствами, принадлежащими другим объектам в окне свойств. Это static поле доступно только для чтения.

No

Указывает, что свойство невозможно объединить со свойствами, принадлежащими другим объектам в окне свойств. Это static поле доступно только для чтения.

Yes

Указывает, что свойство можно объединить со свойствами, принадлежащими другим объектам в окне "Свойства". Это static поле доступно только для чтения.

Свойства

Имя Описание
AllowMerge

Возвращает значение, указывающее, может ли это свойство сочетаться со свойствами, принадлежащими другим объектам в окне свойств.

TypeId

При реализации в производном классе получает уникальный идентификатор для этого Attribute.

(Унаследовано от Attribute)

Методы

Имя Описание
Equals(Object)

Указывает, равны ли этот экземпляр и указанный объект.

GetHashCode()

Возвращает хэш-код для этого экземпляра.

GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
IsDefaultAttribute()

Определяет, является ли этот атрибут значением по умолчанию.

Match(Object)

При переопределении в производном классе возвращает значение, указывающее, равен ли этот экземпляр указанному объекту.

(Унаследовано от Attribute)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

Имя Описание
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

(Унаследовано от Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Извлекает сведения о типе объекта, который можно использовать для получения сведений о типе для интерфейса.

(Унаследовано от Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к свойствам и методам, предоставляемым объектом.

(Унаследовано от Attribute)

Применяется к

См. также раздел