Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poskytuje prostředky k určení zdroje vazby z hlediska relativní relace v grafu objektu za běhu.
Použití atributů XAML (samoobslužný režim)
<Binding RelativeSource="{RelativeSource Self}" .../>
-or-
<object property="{Binding RelativeSource={RelativeSource Self} ...}" .../>
Použití atributu XAML (režim TemplatedParent)
<Binding RelativeSource="{RelativeSource TemplatedParent}" .../>
-or-
<object property="{Binding RelativeSource={RelativeSource TemplatedParent} ...}" .../>
Hodnoty XAML
| Term | Description |
|---|---|
| {RelativeSource Self} | Vytvoří hodnotu Režimusebe sama. Cílový prvek by měl být použit jako zdroj pro tuto vazbu. To je užitečné pro vazbu jedné vlastnosti elementu na jinou vlastnost stejného prvku. |
| {RelativeSource TemplatedParent} | Vytvoří ControlTemplate , který se použije jako zdroj pro tuto vazbu. To je užitečné pro použití informací modulu runtime na vazby na úrovni šablony. |
Poznámky
Vazba může nastavit Binding.RelativeSource buď jako atribut u elementu objektu Binding, nebo jako součást v rámci rozšíření značek {Binding}. Proto se zobrazují dvě různé syntaxe XAML.
RelativeSource se podobá rozšíření značek {Binding}. Jedná se o rozšíření značkovacího jazyka, které je schopno vracet své vlastní instance a podporuje konstrukci na základě řetězce, která v podstatě předává argument do konstruktoru. V tomto případě je předaný argument hodnotou Mode .
Režim Self je užitečný pro vazbu jedné vlastnosti elementu na jinou vlastnost ve stejném elementu a je variantou vazby ElementName, ale nevyžaduje pojmenování a následné odkazování na samotný prvek. Pokud vážete jednu vlastnost prvku na jinou vlastnost na stejném prvku, buď musí vlastnosti používat stejný typ vlastnosti, nebo musíte při vazbě použít Převaděč, aby se hodnoty převedly. Výšku můžete například použít jako zdroj pro šířku bez převodu, ale k použití IsEnabled jako zdroje pro viditelnost byste potřebovali převaděč.
Následuje příklad. Tento Rectangle používá {Binding} markup extension, aby jeho výška a šířka byla vždy stejná a vždy vykresluje jako čtverec. Jako pevnou hodnotu je nastavena pouze výška. Pro tento obdélník má výchozí DataContexthodnotu null, nikoli toto. Proto k vytvoření zdroje kontextu dat, který má být samotným objektem (a povolením vazby k jeho dalším vlastnostem), použijeme RelativeSource={RelativeSource Self} argument v použití rozšíření značek {Binding}.
<Rectangle
Fill="Orange" Width="200"
Height="{Binding RelativeSource={RelativeSource Self}, Path=Width}"
/>
Další použití RelativeSource={RelativeSource Self} je jako způsob, jak nastavit DataContext objektu na sebe. cs-CZ: Tuto techniku můžete vidět například v některých příkladech sady SDK, ve kterých byla třída Page rozšířena o vlastní vlastnost, která již poskytuje připravený model zobrazení pro svou datovou vazbu, například: <common:LayoutAwarePage ... DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}">
Poznámka Použití XAML pro RelativeSource zobrazuje pouze použití, pro které je určeno: nastavení hodnoty Binding.RelativeSource v XAML jako součást vazbového výrazu. Teoreticky, jsou možné i jiné způsoby použití, pokud nastavíte vlastnost, kde je hodnota RelativeSource.
Související témata
Windows developer