Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

DependencyObject.SetValue-Methode (DependencyProperty, Object)

Aktualisiert: November 2007

Legt den lokalen Wert einer Abhängigkeitseigenschaft fest, die über ihren Bezeichner angegeben wird.

Namespace:  System.Windows
Assembly:  WindowsBase (in WindowsBase.dll)

public void SetValue(
	DependencyProperty dp,
	Object value
)
public void SetValue(
	DependencyProperty dp,
	Object value
)
public function SetValue(
	dp : DependencyProperty, 
	value : Object
)
Sie können diese Methoden nicht in XAML verwenden.

Parameter

dp
Typ: System.Windows.DependencyProperty
Der Bezeichner der festzulegenden Abhängigkeitseigenschaft.
value
Typ: System.Object
Der neue lokale Wert.

AusnahmeBedingung
InvalidOperationException

Es wurde versucht, eine schreibgeschützte Abhängigkeitseigenschaft oder eine Eigenschaft in einem versiegelten DependencyObject zu ändern.

ArgumentException

value entsprach nicht dem für die dp-Eigenschaft registrierten Typ.

Wenn der bereitgestellte Typ nicht mit dem bei der Registrierung für die Abhängigkeitseigenschaft deklarierten Typ übereinstimmt, wird eine Ausnahme ausgelöst. Der value-Parameter sollte immer mit dem richtigen Typ angegeben werden.

Die Ausnahmebedingungen werden potenziell vom ValidateValueCallback-Rückruf des Bezeichners der festzulegenden Abhängigkeitseigenschaft beeinflusst. Andernfalls könnte die allgemeine Typüberprüfung für den bereitgestellten Typ fehlschlagen (wenn z. B. eine Zeichenfolge anstatt des systemeigenen Typs Double übergeben wird).

Dieses Beispiel zeigt, wie Sie eine common language runtime (CLR)-Eigenschaft mit einem DependencyProperty-Feld unterstützen und auf diese Weise eine Abhängigkeitseigenschaft definieren. Wenn Sie Ihre eigenen Eigenschaften definieren und möchten, dass diese viele Aspekte der Windows Presentation Foundation (WPF)-Funktionalität unterstützen, zum Beispiel Stile, Datenbindung, Vererbung, Animation und Standardwerte, sollten Sie die Eigenschaften als Abhängigkeitseigenschaften implementieren.

Im folgenden Beispiel wird zuerst eine Abhängigkeitseigenschaft registriert, indem die Register-Methode aufgerufen wird. Der Name des Bezeichnerfelds, das Sie zum Speichern des Namens und der Merkmale der Abhängigkeitseigenschaft verwenden, muss der Name sein, den Sie für die Abhängigkeitseigenschaft als Teil des Register-Aufrufs gewählt haben. Daran muss das Zeichenfolgenliteral Property angehängt werden. Wenn Sie zum Beispiel eine Abhängigkeitseigenschaft mit dem NameLocation registrieren, muss das Bezeichnerfeld, das Sie für die Abhängigkeitseigenschaft definieren, den Namen LocationProperty haben.

In diesem Beispiel lautet der Name der Abhängigkeitseigenschaft und ihres CLR-Accessors State. Das Bezeichnerfeld ist StateProperty. Der Typ der Eigenschaft lautet Boolean, und der Typ, der die Abhängigkeitseigenschaft registriert, lautet MyStateControl.

Wenn Sie diese Konventionen der Namensgebung nicht befolgen, melden Designer Ihre Eigenschaft ggf. nicht richtig, und es kann sein, dass bestimmte Aspekte des Stilanwendungsmodus des Eigenschaftensystems sich nicht wie erwartet verhalten.

Sie können für eine Abhängigkeitseigenschaft auch Standardmetadaten angeben. Dieses Beispiel registriert den Standardwert der State Abhängigkeitseigenschaft als false.

public class MyStateControl : ButtonBase
{
  public MyStateControl() : base() { }
  public Boolean State
  {
    get { return (Boolean)this.GetValue(StateProperty); }
    set { this.SetValue(StateProperty, value); } 
  }
  public static readonly DependencyProperty StateProperty = DependencyProperty.Register(
    "State", typeof(Boolean), typeof(MyStateControl),new PropertyMetadata(false));
}


Das vollständige Beispiel finden Sie unter Beispiel für benutzerdefinierte Klassen mit Abhängigkeitseigenschaften.

Weitere Informationen dazu, wie und warum Sie eine Abhängigkeitseigenschaft implementieren sollten, anstatt eine CLR-Eigenschaft mit einem privaten Feld zu versehen, finden Sie unter Übersicht über Abhängigkeitseigenschaften.

Windows Vista

.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
Anzeigen: