Freigeben über


ContentPropertyAttribute Klasse

Definition

Zeigt an, welche Eigenschaft eines Typs die XAML-Inhaltseigenschaft ist. Ein XAML-Prozessor verwendet diese Informationen bei der Verarbeitung von untergeordneten XAML-Elementen von XAML-Darstellungen des attributierten Typs.

public ref class ContentPropertyAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=true)]
public sealed class ContentPropertyAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=true)>]
type ContentPropertyAttribute = class
    inherit Attribute
Public NotInheritable Class ContentPropertyAttribute
Inherits Attribute
Vererbung
ContentPropertyAttribute
Attribute

Beispiele

Im folgenden Beispiel wird eine Klasse mit dem Namen Film erstellt, die eine ContentPropertyAttribute angewendet hat. Die Eigenschaft namens Title wird als Inhaltseigenschaft angegeben.

[ContentProperty("Title")]
public class Film
{
    public Film()
    {
    }

    public string Title
    {
        get { return _title; }
        set { _title = value; }
    }

    private string _title;
}
<ContentProperty("Title")>
Public Class Film
    Public Sub New()
    End Sub

    Public Property Title() As String
        Get
            Return _title
        End Get
        Set(ByVal value As String)
            _title = value
        End Set
    End Property

    Private _title As String
End Class

Hinweise

Wenn die zugeordnete Eigenschaft eines ContentPropertyAttribute nicht vom Typ string oder objectist, versucht ein XAML-Prozessor, eine Wertkonvertierungsmethode zu identifizieren. Die erste Überprüfung ist die native Typkonvertierung, entweder der XAML-Sprachgrundtypen oder der spezifischen nativen Konvertierungen, die von dieser bestimmten XAML-Writer-Implementierung aktiviert werden. Der nächste Schritt besteht darin, nach einem Typkonverter zu suchen. In den .NET-Implementierungen wird ein Typkonverter basierend auf TypeConverterAttribute der Member- oder Typebenendefinition identifiziert, die gilt. Wenn keine Wertkonvertierung identifiziert werden kann, löst ein XAML-Objektschreiber in der Regel eine Ausnahme aus.

Um mehr als ein einzelnes Objektelement als Inhalt zu akzeptieren, muss der Typ der XAML-Inhaltseigenschaft als Sammlungstyp unterstützt werden können.

Aufgrund der Inherited=true Deklaration des Attributs wendet ein Wert für einen ContentPropertyAttribute normalerweise auch eine Inhaltseigenschaftsbezeichnung auf alle abgeleiteten Klassen an. Durch das Anwenden einer leeren ContentPropertyAttribute Klasse kann eine abgeleitete Klasse eine Deklaration eines Inhaltseigenschaftsattributs durch eine Basisklasse entfernen (und beachten, dass die Klasse keine Inhaltseigenschaft aufweist). Wenn Sie einen anderen Namen anwenden ContentPropertyAttribute , wird das geerbte ContentPropertyAttribute durch das neue ersetzt.

In früheren Versionen des .NET Framework war diese Klasse in der WPF-spezifischen Assembly WindowsBase vorhanden und verfügte auch über eine parallele Implementierung in Windows Communication Foundation (WCF). Ab dem .NET Framework 4.0 ContentPropertyAttribute befindet sich in der System.Xaml-Assembly. Weitere Informationen finden Sie unter Types Migrated from WPF to System.Xaml.

Hinweise zur WPF-Verwendung

Ein Beispiel für eine Klasse in Windows Presentation Foundation (WPF), die den ContentPropertyAttribute verwendet, ist ContentControl, von dem die Button Klasse erbt. Die ContentControl.Content -Eigenschaft ist die inhaltsbezogene Eigenschaft, die ContentPropertyAttributevon festgelegt wird. Wenn ein Button in XAML instanziiert wird, wird das Content von Button auf das Element festgelegt, das sich zwischen den Start- und End-Schaltflächentags befindet.

Konstruktoren

ContentPropertyAttribute()

Initialisiert eine neue Instanz der ContentPropertyAttribute-Klasse.

ContentPropertyAttribute(String)

Initialisiert eine neue Instanz der ContentPropertyAttribute-Klasse unter Verwendung des angegebenen Namens.

Eigenschaften

Name

Ruft den Namen der Eigenschaft ab, die die Inhaltseigenschaft ist.

TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.

(Geerbt von Attribute)

Methoden

Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.

(Geerbt von Attribute)
GetHashCode()

Gibt den Hashcode für diese Instanz zurück.

(Geerbt von Attribute)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.

(Geerbt von Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).

(Geerbt von Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.

(Geerbt von Attribute)

Gilt für:

Weitere Informationen