Exportieren (0) Drucken
Alle erweitern

BindableAttribute-Klasse

Aktualisiert: November 2007

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)

[AttributeUsageAttribute(AttributeTargets.All)]
public sealed class BindableAttribute : Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.All) */
public final class BindableAttribute extends Attribute
public final class BindableAttribute extends Attribute

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.

ft8ts94a.alert_note(de-de,VS.90).gifHinweis:

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.

ft8ts94a.alert_caution(de-de,VS.90).gifVorsicht:

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.

Im folgenden Codebeispiel wird eine Eigenschaft als zum Binden von Daten geeignet markiert.

[Bindable(true)]
 public int MyProperty {
    get {
       // Insert code here.
       return 0;
    }
    set {
       // 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.
         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.
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.

AttributeCollection attributes = 
    TypeDescriptor.GetAttributes(MyProperty);
 if(attributes[typeof(BindableAttribute)].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.
}


System.Object
  System.Attribute
    System.ComponentModel.BindableAttribute

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0, 1.1, 1.0

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft