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.
Lehetővé teszi a kötés forrásának megadását a futásidejű objektumdiagram relatív kapcsolatában.
XAML attribútumhasználat (önmód)
<Binding RelativeSource="{RelativeSource Self}" .../>
-or-
<object property="{Binding RelativeSource={RelativeSource Self} ...}" .../>
XAML-attribútum használata (TemplatedParent mód)
<Binding RelativeSource="{RelativeSource TemplatedParent}" .../>
-or-
<object property="{Binding RelativeSource={RelativeSource TemplatedParent} ...}" .../>
XAML-értékek
| Időszak | Description |
|---|---|
| {RelativeSource Self} | Egy mód értéket hoz létre: Önmaga. A kötés forrásaként a célelemet kell használni. Ez akkor hasznos, ha egy elem egyik tulajdonságát egy másik tulajdonsághoz köti ugyanazon az elemen. |
| {RelativeSource TemplatedParent} | Létrehoz egy ControlTemplate-et , amely a kötés forrásaként van alkalmazva. Ez akkor hasznos, ha futásidejű információkat alkalmaz a kötésekre a sablon szintjén. |
Megjegyzések
A kötések a Binding.RelativeSource attribútumként is beállíthatók egy Kötésobjektum-elemen, vagy egy {Binding} korrektúrakiterjesztésen belüli összetevőként. Ezért két különböző XAML-szintaxis jelenik meg.
A RelativeSource a {Binding} korrektúrakiterjesztéshez hasonló. Ez egy jelölőnyelvi kiterjesztés, amely képes saját példányokat visszaadni, és támogatja a sztringalapú konstrukciót, amely lényegében egy argumentumot ad át a konstruktornak. Ebben az esetben az átadott argumentum a Mód érték.
Az Önmód akkor hasznos, ha egy elem egyik tulajdonságát egy másik tulajdonsághoz köti ugyanazon az elemen, és az ElementName kötés egyik változata, de nem igényel elnevezést, majd önhivatkozást az elemre. Ha egy elem egyik tulajdonságát egy másik tulajdonsághoz köti ugyanazon az elemen, akkor vagy a tulajdonságoknak ugyanazt a tulajdonságtípust kell használniuk, vagy a kötésen konvertert is kell használniuk az értékek konvertálásához. Használhatja például a Magasságot forrásként a szélességhez átalakítás nélkül, de az IsEnabled forrásként való használatához konverterre lenne szükség a láthatósághoz.
Íme egy példa. Ez a téglalap{Binding} jelölőbővítményt használ, hogy a magassága és szélessége mindig egyenlő legyen, és négyzetként jelenik meg. Csak a magasság van rögzített értékként beállítva. Ebben a téglalapban az alapértelmezett DataContextértéke null, nem ez. Ezért ahhoz, hogy az adatforrás maga az objektum legyen (és engedélyezze a kötést a többi tulajdonságához), a RelativeSource={RelativeSource Self} {Binding} korrektúrabővítmény-használatban az argumentumot használjuk.
<Rectangle
Fill="Orange" Width="200"
Height="{Binding RelativeSource={RelativeSource Self}, Path=Width}"
/>
Egy másik felhasználási RelativeSource={RelativeSource Self} mód egy objektum DataContext-jének önmagára történő beállítása. Ezt a technikát például néhány SDK-példában láthatjuk, ahol a Page osztály egy olyan egyéni tulajdonsággal bővült, amely már egy használatra kész nézetmodellt biztosít a saját adatkötéséhez, például: <common:LayoutAwarePage ... DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}">
Jegyzet A RelativeSource XAML-használata csak azokat a használatokat jeleníti meg, amelyekre szánták: az XAML-ben a Binding.RelativeSource értékének beállítása kötési kifejezés részeként. Elméletileg más használati módok is lehetségesek, ha olyan tulajdonságot állít be, amelyben az érték RelativeSource.
Kapcsolódó témakörök
Windows developer