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 példa bemutatja, hogyan adhat hozzá osztályt egy másik típushoz regisztrált függőségi tulajdonság tulajdonosaként. Ezzel a WPF XAML olvasó és a tulajdonságrendszer képes felismerni az osztályt a tulajdonság további tulajdonosaként. A tulajdonosként való hozzáadás lehetővé teszi, hogy az osztály típusspecifikus metaadatokat adjon meg.
Az alábbi példában StateProperty az MyStateControl osztály által regisztrált tulajdonság. Az UnrelatedStateControl osztály tulajdonosként adja hozzá magát a StateProperty-hez a AddOwner metódussal, különösen oly módon, ahogy az aláírás lehetővé teszi a függőségi tulajdonság új metaadatainak megadását az arra vonatkozó típusban. Figyelje meg, hogy a tulajdonsághoz a Függőségi tulajdonság implementálása példához hasonló közös nyelvi futtatókörnyezeti (CLR) kiegészítőt kell megadnia, valamint újra közzé kell tennie a függőségi tulajdonság azonosítóját a tulajdonosként hozzáadott osztályon.
Burkoló nélkül a függőségi tulajdonság továbbra is a programozott hozzáférés szempontjából működne GetValue vagy SetValuehasználatával. Ezt a tulajdonságrendszer-viselkedést azonban általában a CLR-tulajdonságburkolókkal szeretné párhuzamosan használni. A burkolók megkönnyítik a függőségi tulajdonság programozott beállítását, és lehetővé teszik a tulajdonságok XAML-attribútumként való beállítását.
Az alapértelmezett metaadatok felülbírálásához lásd: Függőségi tulajdonság metaadatainak felülbírálása.
példa
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));
}
Public Class MyStateControl
Inherits ButtonBase
Public Sub New()
MyBase.New()
End Sub
Public Property State() As Boolean
Get
Return CType(Me.GetValue(StateProperty), Boolean)
End Get
Set(ByVal value As Boolean)
Me.SetValue(StateProperty, value)
End Set
End Property
Public Shared ReadOnly StateProperty As DependencyProperty = DependencyProperty.Register("State", GetType(Boolean), GetType(MyStateControl),New PropertyMetadata(False))
End Class
public class UnrelatedStateControl : Control
{
public UnrelatedStateControl() { }
public static readonly DependencyProperty StateProperty = MyStateControl.StateProperty.AddOwner(typeof(UnrelatedStateControl), new PropertyMetadata(true));
public Boolean State
{
get { return (Boolean)this.GetValue(StateProperty); }
set { this.SetValue(StateProperty, value); }
}
}
Public Class UnrelatedStateControl
Inherits Control
Public Sub New()
End Sub
Public Shared ReadOnly StateProperty As DependencyProperty = MyStateControl.StateProperty.AddOwner(GetType(UnrelatedStateControl), New PropertyMetadata(True))
Public Property State() As Boolean
Get
Return CType(Me.GetValue(StateProperty), Boolean)
End Get
Set(ByVal value As Boolean)
Me.SetValue(StateProperty, value)
End Set
End Property
End Class
Lásd még
- egyéni függőségi tulajdonságok
- függőség tulajdonságainak áttekintése
.NET Desktop feedback