Rozšíření značek připojení
Defervuje hodnotu vlastnosti, aby byla hodnota svázaná s daty, vytvoří objekt zprostředkujícího výrazu a interpretuje kontext dat, který se vztahuje na prvek a jeho vazbu za běhu.
Použití vazby výrazů
<object property="{Binding}" .../>
-or-
<object property="{Binding bindProp1=value1[, bindPropN=valueN]*}" ...
/>
-or-
<object property="{Binding path}" .../>
-or
<object property="{Binding path[, bindPropN=valueN]*}" .../>
Poznámky ke syntaxi
Vtěchtoch []
*
Jsou součástí zápisu, který označuje, že lze použít nulové nebo více dvojic hodnot bindProp=
s ,
oddělovačem mezi nimi a předchozími páry hodnot bindProp.=
Všechny vlastnosti uvedené v části Vlastnosti vazby, které lze nastavit pomocí rozšíření vazby, lze místo toho nastavit pomocí atributů elementu objektu Binding . To však není skutečně použití Bindingrozšíření značek , to je pouze obecné zpracování XAML atributů, které nastavují vlastnosti CLR Binding třídy. Jinými slovy, <Binding
bindProp1="
value1"[
bindPropN valueN="
"]*/>
je ekvivalentní syntaxe pro atributy Binding použití elementu objektu místo použití výrazu.Binding
Informace o použití atributu XAML pro konkrétní vlastnosti Bindingnaleznete v části Použití atributů XAML příslušné vlastnosti Binding v knihovně tříd rozhraní .NET Framework.
Hodnoty XAML
Hodnota | Popis |
---|---|
bindProp1, bindPropN |
Název Binding nebo BindingBase vlastnost, která se má nastavit. Ne všechny Binding vlastnosti lze nastavit s rozšířením Binding a některé vlastnosti jsou v rámci výrazu Binding nastaveny pouze pomocí dalších vnořených rozšíření značek. Viz část Vlastnosti vazby, které lze nastavit pomocí rozšíření vazby. |
value1, valueN |
Hodnota, na kterou chcete nastavit vlastnost. Zpracování hodnoty atributu je nakonec specifické pro typ a logiku konkrétní Binding vlastnosti, která se nastavuje. |
path |
Řetězec cesty, který nastaví implicitní Binding.Path vlastnost. Viz také Syntaxe XAML Pro cestu k vlastnostem. |
Nekvalifikovaný {Binding}
Použití {Binding}
zobrazené v části Použití vazby výrazu Binding vytvoří objekt s výchozími hodnotami, které zahrnují iniciály Binding.Path null
. To je stále užitečné v mnoha scénářích, protože vytvořený Binding objekt může záviset na vlastnostech klíčových datových vazeb, jako Binding.Path jsou vlastnosti datové vazby za běhu a Binding.Source nastavení v kontextu dat za běhu. Další informace o konceptu kontextu dat najdete v tématu Datové vazby.
Implicitní cesta
Rozšíření Binding
značek se používá Binding.Path jako koncepční výchozí vlastnost, kde Path=
se ve výrazu nemusí zobrazovat. Pokud zadáte Binding
výraz s implicitní cestou, musí se implicitní cesta zobrazit jako první ve výrazu před všemi dalšími bindProp
=value
dvojicemi, ve Binding kterých je vlastnost určena názvem. Příklad: {Binding PathString}
, kde PathString
je řetězec, který je vyhodnocen jako hodnota Binding.Path ve Binding vytvořeném využití rozšíření značek. Za oddělovač čárky můžete přidat implicitní cestu s jinými pojmenovanými vlastnostmi, například {Binding LastName, Mode=TwoWay}
.
Vlastnosti vazby, které lze nastavit pomocí rozšíření vazby
Syntaxe zobrazená v tomto tématu používá obecnou bindProp
=value
aproximaci, protože existuje mnoho vlastností čtení a zápisu BindingBase nebo Binding které lze nastavit prostřednictvím Binding
syntaxe rozšíření značek nebo výrazu. Mohou být nastaveny v libovolném pořadí s výjimkou implicitního Binding.Path. (Máte možnost explicitně zadat Path=
, v takovém případě může být nastavena v libovolném pořadí). V podstatě můžete nastavit nula nebo více vlastností v následujícím seznamu pomocí bindProp
=value
párů oddělených čárkami.
Několik z těchto hodnot vlastností vyžaduje typy objektů, které nepodporují převod nativního typu z textové syntaxe v XAML, a proto vyžadují rozšíření značek, aby byla nastavena jako hodnota atributu. Další informace najdete v části Použití atributů XAML v knihovně tříd rozhraní .NET Framework pro každou vlastnost; Řetězec, který použijete pro syntaxi atributu XAML s použitím rozšíření nebo bez dalších značek, je v podstatě stejná jako hodnota, kterou zadáte ve výrazuBinding
, s výjimkou, že uvozovky neumisťujete kolem každéhovalue
bindProp
=ve výrazu.Binding
BindingGroupName: řetězec, který identifikuje možnou skupinu vazeb. Jedná se o poměrně pokročilý koncept vazby; viz referenční stránka pro BindingGroupName.
BindsDirectlyToSource: Logická hodnota, může být buď
true
nebofalse
. Výchozí hodnota jefalse
.Converter: Lze nastavit jako
bindProp
=value
řetězec ve výrazu, ale k tomu vyžaduje odkaz na objekt pro hodnotu, například StaticResource Markup Extension. Hodnota v tomto případě je instancí vlastní třídy převaděče.ConverterCulture: nastavená ve výrazu jako identifikátor založený na standardech; viz referenční téma pro ConverterCulture.
ConverterParameter: lze nastavit jako
bindProp
=value
řetězec ve výrazu, ale to je závislé na typu předávaného parametru. Pokud předáte typ odkazu pro hodnotu, toto použití vyžaduje odkaz na objekt, jako je vnořené rozšíření značek StaticResource.ElementName: vzájemně se vylučují a Sourcekaždá z těchto vlastností vazby RelativeSource představuje určitou metodiku vazby. Viz přehled datových vazeb.
FallbackValue: lze nastavit jako
bindProp
=value
řetězec ve výrazu, ale to je závislé na typu předávané hodnoty. Pokud předáte typ odkazu, vyžaduje odkaz na objekt, jako je vnořené rozšíření značek StaticResource.IsAsync: Logická hodnota, může být buď
true
nebofalse
. Výchozí hodnota jefalse
.Mode: hodnota je konstantní název z výčtu BindingMode . Například
{Binding Mode=OneWay}
.NotifyOnSourceUpdated: Logická hodnota, může být buď
true
nebofalse
. Výchozí hodnota jefalse
.NotifyOnTargetUpdated: Logická hodnota, může být buď
true
nebofalse
. Výchozí hodnota jefalse
.NotifyOnValidationError: Logická hodnota, může být buď
true
nebofalse
. Výchozí hodnota jefalse
.Path: Řetězec, který popisuje cestu k datovému objektu nebo obecnému objektovém modelu. Formát poskytuje několik různých konvencí pro procházení objektového modelu, které nelze dostatečně popsat v tomto tématu. Viz syntaxe XAML pro cestu k vlastnostem.
RelativeSource: vzájemně se vylučují a každá z těchto vlastností vazby ElementName Sourcepředstavuje určitou metodiku vazby. Viz přehled datových vazeb. K určení hodnoty vyžaduje vnořené použití RelativeSource MarkupExtension .
Source: vzájemně se vylučují a ElementNamekaždá z těchto vlastností vazby RelativeSource představuje určitou metodiku vazby. Viz přehled datových vazeb. Vyžaduje vnořené použití rozšíření, obvykle Rozšíření značek StaticResource, které odkazuje na zdroj dat objektu ze slovníku prostředků s klíči.
StringFormat: řetězec, který popisuje konvenci formátu řetězce pro svázaná data. Jedná se o poměrně pokročilý koncept vazby; viz referenční stránka pro StringFormat.
TargetNullValue: lze nastavit jako
bindProp
=value
řetězec ve výrazu, ale to je závislé na typu předávaného parametru. Pokud předáte typ odkazu pro tuto hodnotu, vyžaduje odkaz na objekt, jako je vnořené rozšíření značek StaticResource.UpdateSourceTrigger: hodnota je konstantní název z výčtu UpdateSourceTrigger . Například
{Binding UpdateSourceTrigger=LostFocus}
. Konkrétní ovládací prvky mohou mít pro tuto vlastnost vazby různé výchozí hodnoty. Viz třída UpdateSourceTrigger.ValidatesOnDataErrors: Logická hodnota, může být buď
true
nebofalse
. Výchozí hodnota jefalse
. Viz poznámky.ValidatesOnExceptions: Logická hodnota, může být buď
true
nebofalse
. Výchozí hodnota jefalse
. Viz poznámky.XPath: Řetězec, který popisuje cestu k XMLDOM zdroje dat XML. Viz Vazba na data XML pomocí XMLDataProvider a XPath Dotazy.
Níže jsou uvedeny vlastnostiBinding, které nelze nastavit pomocí formátu rozšíření značky nebo{Binding}
výrazuBinding
.
UpdateSourceExceptionFilter: Tato vlastnost očekává odkaz na implementaci zpětného volání. Zpětná volání/metody jiné než obslužné rutiny událostí nelze odkazovat v syntaxi XAML.
ValidationRules: Vlastnost přebírá obecnou kolekci ValidationRule objektů. Lze to vyjádřit jako prvek vlastnosti v elementu Binding objektu, ale nemá žádnou snadno dostupnou metodu parsování atributů pro použití ve výrazu
Binding
. Viz referenční téma pro ValidationRules.
Poznámky
Důležité
Z hlediska priority Binding
vlastnosti závislosti je výraz ekvivalentní místně nastavené hodnotě. Pokud nastavíte místní hodnotu pro vlastnost, která dříve měla Binding
výraz, Binding
je zcela odebrána. Podrobnosti najdete v tématu Priorita hodnoty vlastnosti závislosti.
Popis datové vazby na základní úrovni se v tomto tématu nezabývá. Viz přehled datových vazeb.
Poznámka:
MultiBinding nepodporuje PriorityBinding syntaxi rozšíření XAML. Místo toho byste použili prvky vlastností. Viz referenční témata pro MultiBinding a PriorityBinding.
Logické hodnoty xaml nerozlišují malá a velká písmena. Můžete například zadat buď {Binding NotifyOnValidationError=true}
nebo {Binding NotifyOnValidationError=True}
.
Vazby, které zahrnují ověření dat, jsou obvykle určeny explicitním Binding
prvkem, nikoli jako {Binding ...}
výraz, a nastavení ValidatesOnDataErrors nebo ValidatesOnExceptions ve výrazu je neobvyklé. Důvodem je to, že doprovodnou vlastnost ValidationRules nelze snadno nastavit ve formuláři výrazu. Další informace naleznete v tématu Implementace ověřování vazby.
Binding
je rozšíření značek. Rozšíření značek se obvykle implementují v případě, že existuje požadavek, aby hodnoty řídicích atributů byly jiné než literální hodnoty nebo názvy obslužných rutin, a požadavek je více globální než převaděče typů přiřazených u určitých typů nebo vlastností. Všechna rozšíření značek v XAML používají {
a }
znaky v syntaxi atributů, což je konvence, kterou procesor XAML rozpozná, že rozšíření značek musí zpracovat obsah řetězce. Další informace naleznete v tématu Rozšíření značek a WPF XAML.
Binding
je atypické rozšíření značek v tom, že Binding třída, která implementuje rozšiřující funkce pro implementaci XAML WPF také implementuje několik dalších metod a vlastností, které nesouvisí s XAML. Ostatní členové jsou určeni k tomu, aby byla Binding všestrannější a samostatná třída, která může řešit mnoho scénářů datových vazeb kromě fungování jako rozšíření značek XAML.
Viz také
.NET Desktop feedback