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.
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=" 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.Pathnull. 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éhobindProp=valueve 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ď
truenebofalse. 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 RelativeSourcekaždá z těchto vlastností vazby Source 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ď
truenebofalse. 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ď
truenebofalse. Výchozí hodnota jefalse.NotifyOnTargetUpdated: Logická hodnota, může být buď
truenebofalse. Výchozí hodnota jefalse.NotifyOnValidationError: Logická hodnota, může být buď
truenebofalse. 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 PropertyPath.
RelativeSource: vzájemně se vylučují a každá z těchto vlastností vazby ElementNameSourcepř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 RelativeSourcekaždá z těchto vlastností vazby ElementName 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 UpdateSourceTrigger.ValidatesOnDataErrors: Logická hodnota, může být buď
truenebofalse. Výchozí hodnota jefalse. Viz poznámky.ValidatesOnExceptions: Logická hodnota, může být buď
truenebofalse. 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 neboBinding výrazu{Binding}.
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 naleznete 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í pro značkování. 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