BindableAttribute-Klasse
Gibt an, ob ein Member normalerweise für Bindungen verwendet wird. Diese Klasse kann nicht geerbt werden.
Namespace: System.ComponentModel
Assembly: System (in system.dll)
Syntax
'Declaration
<AttributeUsageAttribute(AttributeTargets.All)> _
Public NotInheritable Class BindableAttribute
Inherits Attribute
'Usage
Dim instance As BindableAttribute
[AttributeUsageAttribute(AttributeTargets.All)]
public sealed class BindableAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::All)]
public ref class BindableAttribute sealed : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.All) */
public final class BindableAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.All)
public final class BindableAttribute extends Attribute
Hinweise
Dieses Attribut können Sie für mehrere Member, normalerweise Eigenschaften, eines Steuerelements angeben.
Wenn eine Eigenschaft mit dem BindableAttribute, das auf true festgelegt ist, markiert wurde, muss für diese Eigenschaft eine Benachrichtigung über eine Eigenschaftenänderung ausgelöst werden. Wenn der Bindable-Eigenschaft der Wert Yes zugeordnet ist, werden bidirektionale Datenbindungen unterstützt. Wenn Bindable der Wert No zugeordnet ist, können Sie dennoch Bindungen an die Eigenschaft durchführen. Die Eigenschaft sollte jedoch nicht im Standardsatz von Eigenschaften angezeigt werden, an die gebunden werden kann, da dadurch u. U. eine Benachrichtigung über eine Eigenschaftenänderung ausgelöst werden kann.
Hinweis
Wenn Sie eine Eigenschaft mit BindableAttribute mit dem Wert true markieren, wird der Wert dieses Attributs auf den konstanten Member Yes festgelegt. Für eine mit BindableAttribute mit dem Wert false markierte Eigenschaft ist der Wert No. Um den Wert dieses Attributs im Code zu überprüfen, müssen Sie daher das Attribut als BindableAttribute.Yes oder BindableAttribute.No angeben.
Warnung
Dieses Attribut können Sie nur zur Entwurfszeit verwenden. Für Bindungen an beliebige Eigenschaften zur Laufzeit bestehen keine Einschränkungen.
Weitere Informationen finden Sie unter Übersicht über Attribute und Erweitern von Metadaten mithilfe von Attributen.
Beispiel
Im folgenden Codebeispiel wird eine Eigenschaft als zum Binden von Daten geeignet markiert.
<Bindable(True)> _
Public Property MyProperty() As Integer
Get
' Insert code here.
Return 0
End Get
Set
' Insert code here.
End Set
End Property
[Bindable(true)]
public int MyProperty {
get {
// Insert code here.
return 0;
}
set {
// Insert code here.
}
}
property int MyProperty
{
[System::ComponentModel::Bindable(true)]
int get()
{
// Insert code here.
return 0;
}
[System::ComponentModel::Bindable(true)]
void set( int )
{
// Insert code here.
}
}
/** @attribute Bindable(true)
*/
/** @property
*/
public int get_MyProperty()
{
// Insert code here.
return 0;
} //get_MyProperty()
/** @property
*/
public void set_MyProperty(int value)
{
// Insert code here.
} //set_MyProperty
Im folgenden Beispiel wird veranschaulicht, wie der Wert von BindableAttribute für MyProperty
überprüft wird. Zunächst wird im Code eine PropertyDescriptorCollection mit allen Eigenschaften für das Objekt abgerufen. Anschließend wird im Code MyProperty
über einen Index der PropertyDescriptorCollection abgerufen. Schließlich gibt der Code die Attribute dieser Eigenschaft zurück und speichert diese in der attributes-Variablen. Das Codebeispiel veranschaulicht zwei verschiedene Möglichkeiten zum Überprüfen des Werts des BindableAttribute. Im zweiten Codefragment wird die Equals-Methode aufgerufen. Im letzten Codefragment wird der Wert anhand der Bindable-Eigenschaft überprüft.
' 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
// 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.
}
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)
.get_Item("MyProperty").get_Attributes();
// Checks to see if the value of the BindableAttribute is Yes.
if (attributes.get_Item(BindableAttribute.class.ToType())
.Equals(BindableAttribute.Yes)) {
// Insert code here.
}
// This is another way to see whether the property is bindable.
BindableAttribute myAttribute = (BindableAttribute)
(attributes.get_Item(BindableAttribute.class.ToType()));
if (myAttribute.get_Bindable()) {
// Insert code here.
}
// Yet another way to see whether the property is bindable.
if (attributes.Contains(BindableAttribute.Yes)) {
// Insert code here.
}
Wenn Sie eine Klasse mit BindableAttribute markiert haben, überprüfen Sie den Wert mit folgendem Code.
Dim attributes As AttributeCollection = TypeDescriptor.GetAttributes(MyProperty)
If attributes(GetType(BindableAttribute)).Equals(BindableAttribute.Yes) Then
' Insert code here.
End If
AttributeCollection attributes =
TypeDescriptor.GetAttributes(MyProperty);
if(attributes[typeof(BindableAttribute)].Equals(BindableAttribute.Yes)) {
// Insert code here.
}
using namespace System::ComponentModel;
AttributeCollection^ attributes = TypeDescriptor::GetAttributes( MyProperty );
if ( attributes[ BindableAttribute::typeid ]->Equals( BindableAttribute::Yes ) )
{
// Insert code here.
}
AttributeCollection attributes =
TypeDescriptor.GetAttributes((Int32)get_MyProperty());
if (attributes.get_Item(BindableAttribute.class.ToType())
.Equals(BindableAttribute.Yes)) {
// Insert code here.
}
Vererbungshierarchie
System.Object
System.Attribute
System.ComponentModel.BindableAttribute
Threadsicherheit
Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
BindableAttribute-Member
System.ComponentModel-Namespace
Attribute
PropertyDescriptor
AttributeCollection-Klasse
PropertyDescriptorCollection