BindableAttribute Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает, используется ли элемент для привязки. Этот класс не наследуется.
public ref class BindableAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.All)]
public sealed class BindableAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.All)>]
type BindableAttribute = class
inherit Attribute
Public NotInheritable Class BindableAttribute
Inherits Attribute
- Наследование
- Атрибуты
Примеры
В следующем примере кода свойство помечает свойство соответствующим образом для привязки данных.
property int MyProperty
{
[System::ComponentModel::Bindable(true)]
int get()
{
// Insert code here.
return 0;
}
[System::ComponentModel::Bindable(true)]
void set( int )
{
// Insert code here.
}
}
[Bindable(true)]
public int MyProperty
{
get =>
// Insert code here.
0;
set
{
// Insert code here.
}
}
<Bindable(True)> _
Public Property MyProperty() As Integer
Get
' Insert code here.
Return 0
End Get
Set
' Insert code here.
End Set
End Property
В следующем примере кода показано, как проверить значение BindableAttribute для MyProperty. Во-первых, код получает PropertyDescriptorCollection все свойства объекта. Затем индексирует код в PropertyDescriptorCollection получение MyProperty. Наконец, код возвращает атрибуты для этого свойства и сохраняет их в переменной атрибутов. В примере кода представлены два разных способа проверки значения BindableAttribute. Во втором фрагменте кода в примере вызывается Equals метод. В последнем фрагменте кода в примере используется Bindable свойство для проверки значения.
using namespace System::ComponentModel;
// Gets the attributes for the property.
AttributeCollection^ attributes = TypeDescriptor::GetProperties( this )[ "MyProperty" ]->Attributes;
// Checks to see if the value of the BindableAttribute is Yes.
if ( attributes[ BindableAttribute::typeid ]->Equals( BindableAttribute::Yes ) )
{
// Insert code here.
}
// This is another way to see whether the property is bindable.
BindableAttribute^ myAttribute = static_cast<BindableAttribute^>(attributes[ BindableAttribute::typeid ]);
if ( myAttribute->Bindable )
{
// Insert code here.
}
// Yet another way to see whether the property is bindable.
if ( attributes->Contains( BindableAttribute::Yes ) )
{
// Insert code here.
}
// Gets the attributes for the property.
AttributeCollection attributes =
TypeDescriptor.GetProperties(this)["MyProperty"].Attributes;
// Checks to see if the value of the BindableAttribute is Yes.
if (attributes[typeof(BindableAttribute)].Equals(BindableAttribute.Yes))
{
// Insert code here.
}
// This is another way to see whether the property is bindable.
BindableAttribute myAttribute =
(BindableAttribute)attributes[typeof(BindableAttribute)];
if (myAttribute.Bindable)
{
// Insert code here.
}
// Yet another way to see whether the property is bindable.
if (attributes.Contains(BindableAttribute.Yes))
{
// 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 BindableAttribute is Yes.
If attributes(GetType(BindableAttribute)).Equals(BindableAttribute.Yes) Then
' Insert code here.
End If
' This is another way to see whether the property is bindable.
Dim myAttribute As BindableAttribute = _
CType(attributes(GetType(BindableAttribute)), BindableAttribute)
If myAttribute.Bindable Then
' Insert code here.
End If
' Yet another way to see whether the property is bindable.
If attributes.Contains(BindableAttribute.Yes) Then
' Insert code here.
End If
Если вы помечаете класс с BindableAttributeпомощью этого класса, используйте следующий пример кода, чтобы проверить значение.
using namespace System::ComponentModel;
AttributeCollection^ attributes = TypeDescriptor::GetAttributes( MyProperty );
if ( attributes[ BindableAttribute::typeid ]->Equals( BindableAttribute::Yes ) )
{
// Insert code here.
}
AttributeCollection attributes =
TypeDescriptor.GetAttributes(MyProperty);
if (attributes[typeof(BindableAttribute)].Equals(BindableAttribute.Yes))
{
// Insert code here.
}
Dim attributes As AttributeCollection = TypeDescriptor.GetAttributes(MyProperty)
If attributes(GetType(BindableAttribute)).Equals(BindableAttribute.Yes) Then
' Insert code here.
End If
Комментарии
Этот атрибут можно указать для нескольких элементов, как правило, свойств в элементе управления.
Если свойство отмечено значением BindableAttribute задано значение true, то для этого свойства необходимо создать уведомление об изменении свойства. Это означает, что если свойство BindableYes, то поддерживается двусторонняя привязка данных. Если BindableNo, вы по-прежнему можете привязаться к свойству, но его не следует отображать в наборе свойств по умолчанию для привязки, так как это может или не может вызвать уведомление об изменении свойства.
Note
Если пометить свойство с BindableAttribute значение true, значение этого атрибута присваивается константным Yes. Для свойства, помеченного набором BindableAttributefalse, значение равно No. Таким образом, чтобы проверить значение этого атрибута в коде, необходимо указать атрибут как BindableAttribute.Yes или BindableAttribute.No.
Предостережение
Этот атрибут можно использовать только во время разработки. Ничего не препятствует привязке к любому свойству во время выполнения.
Дополнительные сведения см. в разделе Атрибуты.
Конструкторы
| Имя | Описание |
|---|---|
| BindableAttribute(BindableSupport, BindingDirection) |
Инициализирует новый экземпляр класса BindableAttribute. |
| BindableAttribute(BindableSupport) |
Инициализирует новый экземпляр BindableAttribute класса с одним из значений BindableSupport . |
| BindableAttribute(Boolean, BindingDirection) |
Инициализирует новый экземпляр класса BindableAttribute. |
| BindableAttribute(Boolean) |
Инициализирует новый экземпляр класса BindableAttribute с логическим значением. |
Поля
| Имя | Описание |
|---|---|
| Default |
Указывает значение по умолчанию для параметра BindableAttribute, которое является No. Это поле может использоваться только для чтения. |
| No |
Указывает, что свойство обычно не используется для привязки. Это поле может использоваться только для чтения. |
| Yes |
Указывает, что свойство обычно используется для привязки. Это поле может использоваться только для чтения. |
Свойства
| Имя | Описание |
|---|---|
| Bindable |
Возвращает значение, указывающее, что свойство обычно используется для привязки. |
| Direction |
Возвращает значение, указывающее направление или направление привязки данных этого свойства. |
| TypeId |
При реализации в производном классе получает уникальный идентификатор для этого Attribute. (Унаследовано от Attribute) |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Определяет, равны ли два объекта BindableAttribute. |
| GetHashCode() |
Служит хэш-функцией для класса BindableAttribute. |
| 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) |