Sdílet prostřednictvím


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 nebo false. Výchozí hodnota je false.

  • 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 nebo false. Výchozí hodnota je false.

  • Mode: hodnota je konstantní název z výčtu BindingMode . Například {Binding Mode=OneWay}.

  • NotifyOnSourceUpdated: Logická hodnota, může být buď true nebo false. Výchozí hodnota je false.

  • NotifyOnTargetUpdated: Logická hodnota, může být buď true nebo false. Výchozí hodnota je false.

  • NotifyOnValidationError: Logická hodnota, může být buď true nebo false. Výchozí hodnota je false.

  • 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 nebo false. Výchozí hodnota je false. Viz poznámky.

  • ValidatesOnExceptions: Logická hodnota, může být buď true nebo false. Výchozí hodnota je false. 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.

  • XmlNamespaceManager

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é