DependencyPropertyKey.OverrideMetadata(Type, PropertyMetadata) DependencyPropertyKey.OverrideMetadata(Type, PropertyMetadata) DependencyPropertyKey.OverrideMetadata(Type, PropertyMetadata) DependencyPropertyKey.OverrideMetadata(Type, PropertyMetadata) Method

Definition

Überschreibt die Metadaten einer schreibgeschützten Abhängigkeitseigenschaft, die durch diesen Bezeichner einer Abhängigkeitseigenschaft dargestellt wird.Overrides the metadata of a read-only dependency property that is represented by this dependency property identifier.

public:
 void OverrideMetadata(Type ^ forType, System::Windows::PropertyMetadata ^ typeMetadata);
public void OverrideMetadata (Type forType, System.Windows.PropertyMetadata typeMetadata);
member this.OverrideMetadata : Type * System.Windows.PropertyMetadata -> unit
Public Sub OverrideMetadata (forType As Type, typeMetadata As PropertyMetadata)

Parameter

forType
Type Type Type Type

Der Typ, für den diese Abhängigkeitseigenschaft vorhanden ist, sowie die Metadaten müssen überschrieben werden.The type on which this dependency property exists and metadata should be overridden.

typeMetadata
PropertyMetadata PropertyMetadata PropertyMetadata PropertyMetadata

Für diesen Typ angegebene Metadaten.Metadata supplied for this type.

Ausnahmen

Versuchte Überschreibung von Metadaten für eine Abhängigkeitseigenschaft mit Schreib- und Leseberechtigungen (kann nicht mit dieser Signatur ausgeführt werden).Attempted metadata override on a read-write dependency property (cannot be done using this signature).

Metadaten wurden für die Eigenschaft bereits festgelegt, da sie im bereitgestellten Typ bereits vorhanden sind.Metadata was already established for the property as it exists on the provided type.

Beispiele

Im folgende Beispiel überschreibt die Metadaten für eine vorhandene schreibgeschützte Abhängigkeitseigenschaft, die eine Klasse erbt.The following example overrides metadata for an existing read-only dependency property that a class inherits. In diesem Fall wurde das Szenario-Ziel einen Coerce-Wert-Rückruf hinzufügen, den keine Metadaten für die Basis ein.In this case, the scenario goal was to add a coerce value callback that the base property metadata did not have. Sie können auch Metadaten überschreiben, für die weitere Gründe, die in der Regel das Überschreiben von Metadaten ist geeignete (Standardwert ändern hinzufügen FrameworkPropertyMetadataOptions Werte usw..)You could also override metadata for any of the other reasons that overriding metadata is typically appropriate (changing default value, adding FrameworkPropertyMetadataOptions values, etc.)

static Fishbowl() {
  Aquarium.AquariumSizeKey.OverrideMetadata(
    typeof(Aquarium),
    new PropertyMetadata(
      double.NaN,
      null,
      new CoerceValueCallback(CoerceFishbowlAquariumSize)
    )
  );
}

static object CoerceFishbowlAquariumSize(DependencyObject d,Object baseValue)
{
    //Aquarium is 2D, a Fishbowl is a round Aquarium, so the Size we return is the ellipse of that height/width rather than the rectangle
    Fishbowl fb = (Fishbowl)d;
    //other constraints assure that H,W are positive
    return Convert.ToInt32(Math.PI * (fb.Width / 2) * (fb.Height / 2));
}
Shared Sub New()
    Aquarium.AquariumSizeKey.OverrideMetadata(GetType(Aquarium), New PropertyMetadata(Double.NaN, Nothing, New CoerceValueCallback(AddressOf CoerceFishbowlAquariumSize)))
End Sub

Private Shared Function CoerceFishbowlAquariumSize(ByVal d As DependencyObject, ByVal baseValue As Object) As Object
    'Aquarium is 2D, a Fishbowl is a round Aquarium, so the Size we return is the ellipse of that height/width rather than the rectangle
    Dim fb As Fishbowl = CType(d, Fishbowl)
    'other constraints assure that H,W are positive
    Return Convert.ToInt32(Math.PI * (fb.Width / 2) * (fb.Height / 2))
End Function

Hinweise

Überschreiben von Metadaten für eine schreibgeschützte Abhängigkeitseigenschaft erfolgt aus ähnlichen Gründen als das Überschreiben von Metadaten für eine Abhängigkeitseigenschaft mit Lese-/ Schreibzugriff und sind für den Zugriff auf Ebene der Schlüssel beschränkt, da in den Metadaten angegebene Verhalten auf das Set-Verhalten (die ändern können DEFAULT-Wert, z. B.).Overriding metadata on a read-only dependency property is done for similar reasons as overriding metadata on a read-write dependency property, and is restricted to access at the key level because behaviors specified in the metadata can change the set behavior (the default value, for instance).

Wie mit Lese-/ Schreibzugriff Abhängigkeitseigenschaften Überschreiben von Metadaten für eine schreibgeschützte Abhängigkeitseigenschaft nur vor dieser Eigenschaft verwendet vom Eigenschaftensystem erfolgen soll (Dies entspricht der Zeit, dass bestimmte Instanzen von Objekten, die Registrierung der Eigenschaft werden instanziiert).As with read-write dependency properties, overriding metadata on a read-only dependency property should only be done prior to that property being placed in use by the property system (this equates to the time that specific instances of objects that register the property are instantiated). Aufrufe von OverrideMetadata sollte nur ausgeführt werden, in den statischen Konstruktoren des Typs, der sich selbst als die forType Parameter dieser Methode oder eine gleichwertige Initialisierung für diese Klasse.Calls to OverrideMetadata should only be performed within the static constructors of the type that provides itself as the forType parameter of this method, or equivalent initialization for that class.

Diese Methode leitet effektiv an die OverrideMetadata Methode auf und übergibt die DependencyPropertyKey Instanz als den Key-Parameter.This method effectively forwards to the OverrideMetadata method, passing the DependencyPropertyKey instance as the key parameter.

Gilt für:

Siehe auch