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.
Poznámka:
Pro Windows 10 je k dispozici nový mechanismus vazby, který je optimalizovaný pro zvýšení výkonu a produktivity vývojářů. Viz rozšíření značek {x:Bind}.
Poznámka:
Obecné informace o používání datových vazeb v aplikaci s {Binding} (a pro porovnání mezi {x:Bind} a {Binding}) najdete podrobné informace o datové vazbě.
Rozšíření značek {Binding} slouží k vytvoření vazby vlastností ovládacích prvků na hodnoty pocházející ze zdroje dat, jako je například kód. Rozšíření značek {Binding} se při načtení XAML převede na instanci třídy Binding. Tento objekt vazby získá hodnotu z vlastnosti zdroje dat a přenese ji do vlastnosti ovládacího prvku. Objekt vazby lze volitelně nakonfigurovat tak, aby sledoval změny v hodnotě vlastnosti zdroje dat a aktualizoval sám na základě těchto změn. Volitelně lze také nakonfigurovat tak, aby změny hodnoty ovládacího prvku byly odeslány zpět do zdrojové vlastnosti. Vlastnost, která je cílem datové vazby, musí být vlastnost závislosti. Další informace najdete v tématu Přehled vlastností závislostí.
{Binding} má stejnou prioritu vlastnosti závislosti jako místní hodnota a nastavení místní hodnoty v imperativním kódu odebere účinek všech {Binding} nastavených v kódu.
Použití atributu XAML
<object property="{Binding}" .../>
-or-
<object property="{Binding propertyPath}" .../>
-or-
<object property="{Binding bindingProperties}" .../>
-or-
<object property="{Binding propertyPath, bindingProperties}" .../>
| Term | Description |
|---|---|
| propertyPath | Řetězec, který určuje cestu vlastnosti pro vazbu. Další informace najdete v části Cesta k vlastnosti níže. |
| bindingProperties |
propName=value[, propName=value]* Jedna nebo více vlastností vazby, které jsou zadány pomocí syntaxe páru název/hodnota. |
| propName | Název řetězce vlastnosti, která se má nastavit u objektu Binding . Například "Converter". |
| value | Hodnota, na kterou chcete nastavit vlastnost. Syntaxe argumentu závisí na vlastnosti Vlastnosti třídy Binding, kterou lze nastavit pomocí oddílu {Binding} níže. |
Cesta vlastnosti
Cesta popisuje vlastnost, se kterou jste vázáni (zdrojová vlastnost). Cesta je poziční parametr, což znamená, že můžete použít název parametru explicitně ({Binding Path=EmployeeID}) nebo ho můžete zadat jako první nepojmenovaný parametr ({Binding EmployeeID}).
Typ Path je cesta k vlastnosti, což je řetězec, který se vyhodnotí jako vlastnost nebo dílčí vlastnost vašeho vlastního typu nebo typu frameworku. Typ může být, ale nemusí být DependencyObject. Kroky v cestě vlastnosti jsou oddělené tečkami (.) a je možné použít více oddělovačů pro procházení po sobě jdoucích podvlastností. Použijte tečkovaný oddělovač bez ohledu na programovací jazyk použitý k implementaci objektu vázaného na.
Pokud například chcete provázat uživatelské rozhraní s vlastností "jméno" objektu zaměstnance, vaše cesta k vlastnosti může být "Employee.FirstName". Pokud vytváříte vazbu ovládacího prvku položky na vlastnost, která obsahuje vyživované osoby zaměstnance, cesta vlastnosti může být "Employee.Dependents" a šablona položky ovládacího prvku by se postarala o zobrazení položek ve vyživovaných osobách.
Pokud je zdrojem dat kolekce, cesta k vlastnosti může určovat položky v kolekci podle jejich pozice nebo indexu. Například "Teams[0].Players", kde literál "[]" zahrnuje "0", které specifikuje první položku v kolekci.
Při použití vazby ElementName na existující DependencyObject můžete použít připojené vlastnosti jako součást cesty vlastnosti. Chcete-li zrušit nejednoznačnost u připojené vlastnosti tak, aby středová tečka v názvu nebyla považována za součást cesty vlastnosti, umístěte závorky kolem názvu u připojené vlastnosti určené vlastníkem; například (AutomationProperties.Name).
Zprostředkující objekt cesty vlastnosti je uložen jako objekt PropertyPath v reprezentaci za běhu, ale většina scénářů nebude muset pracovat s objektem PropertyPath v kódu. Pomocí XAML můžete obvykle zadat informace o vazbě, které potřebujete.
Další informace o syntaxi řetězce pro zápis cest k vlastnostem, cesty k vlastnostem v oblastech animačních funkcí a konstrukci objektu PropertyPath naleznete v tématu Syntaxe cesty k vlastnosti.
Vlastnosti třídy Binding, kterou lze nastavit pomocí {Binding}
Propojení {Binding} je znázorněno pomocí syntaxe zástupného symbolu bindingProperties, protože Binding obsahuje několik vlastností pro čtení a zápis, které je možné nastavit v rozšíření markup. Vlastnosti lze nastavit v libovolném pořadí pomocí dvojichodnot= oddělených čárkami. Některé vlastnosti vyžadují typy, které nelze převádět, takže tyto vyžadují vlastní rozšíření značek, která jsou vnořena v rámci {Binding}.
| Vlastnictví | Description |
|---|---|
| cesty |
Viz část Cesta k vlastnosti výše. |
| Převodník | Určuje objekt převaděče, který je volán mechanismem vazby. Převaděč lze nastavit v zápisu značek pomocí rozšíření značek {StaticResource} pro odkazování na tento objekt ze slovníku prostředků. |
| ConverterLanguage | Určuje kulturní nastavení, které má převaděč používat. (Pokud nastavujete Converter.) Kultura je nastavena jako identifikátor založený na standardech. Další informace najdete v tématu ConverterLanguage |
| ConverterParameter | Určuje parametr převaděče, který lze použít v logice převaděče. (Pokud nastavujete Converter.) Většina převaděčů používá jednoduchou logiku, která získá všechny informace potřebné z předané hodnoty k převodu a nepotřebuje hodnotu ConverterParameter . ConverterParameter parametr je určen pro složitější implementace převaděče, které obsahují podmíněnou logiku určovanou tím, co je předáváno pomocí ConverterParameter. Můžete napsat převaděč, který používá jiné hodnoty než řetězce, ale to je neobvyklé, viz Poznámky v ConverterParameter další informace. |
| ElementName | Určuje zdroj dat odkazováním na jiný prvek ve stejném konstruktoru XAML, který má vlastnost Name nebo atribut x:Name. Často se používá ke sdílení souvisejících hodnot nebo použití dílčích vlastností jednoho prvku uživatelského rozhraní k poskytnutí konkrétní hodnoty pro jiný prvek, například v šabloně ovládacího prvku XAML. |
| Náhradní hodnota | Určuje hodnotu, která se má zobrazit, když nelze zdroj nebo cestu vyřešit. |
| Režim | Určuje režim vazby, jako jednu z těchto hodnot: "OneTime", "OneWay" nebo "TwoWay". Ty odpovídají konstantním názvům výčtu BindingMode . Výchozí hodnota je OneWay. Všimněte si, že se liší od výchozího nastavení pro {x:Bind}, což je OneTime. |
| Relativní zdroj | Určuje zdroj dat popisem pozice zdroje vazby vzhledem k pozici cíle vazby. Nejčastěji se používá ve vazbách v rámci šablon ovládacích prvků XAML. Nastavení značkového rozšíření {RelativeSource}. |
| Zdroj | Určuje zdroj dat objektu. V rámci rozšíření Binding vyžaduje vlastnost Source odkaz na objekt, jako je například odkaz na markup extension {StaticResource}. Pokud tato vlastnost není specifikována, aktuální datový kontext určuje zdroj. Obvykleji neurčí zdrojovou hodnotu v jednotlivých vazbách a místo toho se spoléhá na sdílený objekt DataContext pro více vazeb. Další informace najdete v tématu DataContext nebo datová vazba podrobně. |
| TargetNullValue | Určuje hodnotu, která se má zobrazit, když se zdrojová hodnota přeloží, ale má explicitně hodnotu null. |
| UpdateSourceTrigger | Určuje načasování aktualizací zdroje vazby. Pokud není zadáno, výchozí hodnota je Výchozí. |
Poznámka:
Pokud převádíte označování z {x:Bind} na {Binding}, mějte na paměti rozdíly ve výchozích hodnotách vlastnosti Mode.
Převaděč, ConverterLanguage a ConverterLanguage jsou všechny související se scénářem převodu hodnoty nebo typu ze zdroje vazby na typ nebo hodnotu, která je kompatibilní s cílovou vlastností vazby. Další informace a příklady najdete v části "Převody dat" v Podrobném popisu datové vazby.
Poznámka:
Počínaje Windows 10, verze 1607, poskytuje architektura XAML zabudovaný převodník pro konverzi typu Boolean na viditelnost. Převaděč mapuje true na hodnotu výčtu Visible a false na Collapsed, takže můžete navázat vlastnost Visibility na logickou hodnotu, aniž byste museli vytvořit převaděč. Pokud chcete použít integrovaný převaděč, minimální cílová verze sady SDK vaší aplikace musí být 14393 nebo novější. Nemůžete ho použít, když vaše aplikace cílí na starší verze Windows 10. Další informace o cílových verzích najdete v tématu Adaptivní kód verze.
Zdroj, RelativeSource a ElementName určují zdroj vazby, takže se vzájemně vylučují.
Návod
Pokud potřebujete zadat jednu složenou závorku pro hodnotu, například v Path nebo ConverterParameter, před ní zadejte zpětné lomítko: \{. Případně uzavřete celý řetězec, který obsahuje složené závorky, které potřebují úpravu pomocí sekundární sady uvozovek, například ConverterParameter='{Mix}'.
Examples
<!-- binding a UI element to a view model -->
<Page ... >
<Page.DataContext>
<local:BookstoreViewModel/>
</Page.DataContext>
<GridView ItemsSource="{Binding BookSkus}" SelectedItem="{Binding SelectedBookSku, Mode=TwoWay}" ... />
</Page>
<!-- binding a UI element to another UI element -->
<Page ... >
<Page.Resources>
<local:S2Formatter x:Key="GradeConverter"/>
</Page.Resources>
<Slider x:Name="sliderValueConverter" ... />
<TextBox Text="{Binding Path=Value, ElementName=sliderValueConverter,
Mode=OneWay,
Converter={StaticResource GradeConverter}}"/>
</Page>
Druhý příklad nastaví čtyři různé vlastnosti vazby : ElementName, Path, Mode a Converter.
Cesta je v tomto případě explicitně pojmenována jako vlastnost Binding.
Cesta je vyhodnocena jako zdroj vazby dat, který je jiným objektem ve stejném běhovém stromu objektů, posuvník s názvem sliderValueConverter.
Všimněte si, jak hodnota vlastnosti Převaděč používá jiné rozšíření značek, rozšíření značek {StaticResource}, takže zde jsou dvě vnořené použití rozšíření značek. Vnitřní se vyhodnotí jako první, takže jakmile se prostředek získá, je k dispozici IValueConverter (vlastní třída, kterou element local:S2Formatter v prostředcích vytvoří jako instanci), který může vazba použít.
Podpora nástrojů
Microsoft IntelliSense v sadě Microsoft Visual Studio zobrazuje vlastnosti kontextu dat při vytváření {Binding} v editoru značek XAML. Jakmile zadáte "{Binding", zobrazí se v rozevíracím seznamu vlastnosti kontextu dat vhodné pro Path. IntelliSense také pomáhá s dalšími vlastnostmi Binding. Aby to fungovalo, musíte mít v souboru značek buď kontext dat, nebo navrhovaný datový kontext. Přechod na definici (F12) funguje také s {Binding}. Případně můžete použít dialogové okno datové vazby.
Windows developer