Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk azt ismerteti, hogyan implementálhat függőségi tulajdonságot egy DependencyProperty mező használatával egy közös nyelvi futtatókörnyezeti (CLR) tulajdonság háttérrendszeréhez. A függőségi tulajdonságok számos speciális Windows Presentation Foundation (WPF) tulajdonságrendszer-funkciót támogatnak. Ezek a funkciók közé tartoznak a stílusok, az adatkötés, az öröklés, az animáció és az alapértelmezett értékek. Ha azt szeretné, hogy az Ön által definiált tulajdonságok támogassák ezeket a funkciókat, akkor a tulajdonságokat függőségi tulajdonságként implementálja.
példa
Az alábbi példa bemutatja, hogyan regisztrálhat függőségi tulajdonságot a Register metódus meghívásával. A Register metódus visszaad egy DependencyProperty példányt, amelyet függőségi tulajdonság-azonosítónak hívnaknéven. Az azonosító egy static readonly mezőben van tárolva, és egy függőségi tulajdonság nevét és jellemzőit tartalmazza.
Az azonosító mezőnek követnie kell az elnevezési konvenció <property name>Property. Ha például egy függőségi tulajdonságot regisztrál Locationnéven, akkor az azonosító mező neve LocationProperty. Ha nem követi ezt az elnevezési mintát, akkor előfordulhat, hogy a WPF-tervezők nem megfelelően jelentik a tulajdonságot, és előfordulhat, hogy a tulajdonságrendszer-stílusalkalmazás elemei nem a várt módon viselkednek.
Az alábbi példában a függőségi tulajdonság és a CLR-tartozék Aquarium.
Megadhat alapértelmezett metaadat- függőségi tulajdonsághoz. Ez a példa a false függőségi tulajdonság alapértelmezett HasFish értékét állítja be.
public class Aquarium : DependencyObject
{
public static readonly DependencyProperty HasFishProperty =
DependencyProperty.Register(
name: "HasFish",
propertyType: typeof(bool),
ownerType: typeof(Aquarium),
typeMetadata: new FrameworkPropertyMetadata(defaultValue: false));
public bool HasFish
{
get => (bool)GetValue(HasFishProperty);
set => SetValue(HasFishProperty, value);
}
}
Public Class Aquarium
Inherits DependencyObject
Public Shared ReadOnly HasFishProperty As DependencyProperty =
DependencyProperty.Register(
name:="HasFish",
propertyType:=GetType(Boolean),
ownerType:=GetType(Aquarium),
typeMetadata:=New FrameworkPropertyMetadata(defaultValue:=False))
Public Property HasFish As Boolean
Get
Return GetValue(HasFishProperty)
End Get
Set(value As Boolean)
SetValue(HasFishProperty, value)
End Set
End Property
End Class
Ha többet szeretne megtudni arról, hogyan és miért érdemes implementálni egy függőségi tulajdonságot ahelyett, hogy csak egy CLR tulajdonságot támogatna egy privát mezővel, tekintse meg a Függőségi tulajdonságok áttekintésecímű témakört.
Lásd még
.NET Desktop feedback