(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

DependencyObject.SetValue-Methode (DependencyProperty, Object)

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
)

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));
}


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.

.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft