Megosztás a következőn keresztül:


Kötési jelölőkiterjesztés

A tulajdonságértékeket adathoz kötött értékként adja vissza, köztes kifejezésobjektumot hoz létre, és a futtatáskor az elemre és kötésére vonatkozó adatkörnyezetet értelmezi.

Kötési kifejezés használata

<object property="{Binding}" .../>
-or-
<object property="{Binding  bindProp1=value1[, bindPropN=valueN]*}" ...
/>
-or-
<object property="{Binding path}" .../>
-or
<object property="{Binding path[, bindPropN=valueN]*}" .../>

Szintaxisjegyzetek

Ezekben a szintaxisokban a [] és a * nem literálisok. Ezek egy jelölés részét képezik, amely azt jelzi, hogy nulla vagy több bindProp=érték párok használhatók, amelyek között egy , elválasztó található, és az előző bindProp=érték párok.

A "Kötési tulajdonságok, amelyek beállíthatók a kötésbővítménnyel" szakaszban felsorolt tulajdonságok bármelyike beállítható egy Binding objektumelem attribútumaival. Ez azonban nem igazán a Bindingjelölőbővítmény-használata, csak az attribútumok általános XAML-feldolgozása, amely a CLR Binding osztály tulajdonságait állítja be. Más szóval az <BindingbindProp1="value1"[bindPropN="valueN"]*/> az Binding kifejezés használata helyett az Binding objektumelem-használat attribútumainak egyenértékű szintaxisa. A Bindingadott tulajdonságainak XAML-attribútumhasználatáról a .NET-keretrendszerosztálytárban található Binding vonatkozó tulajdonságának "XAML attribútumhasználat" szakaszában olvashat.

XAML-értékek

Érték Leírás
bindProp1, bindPropN A beállítani kívánt Binding vagy BindingBase tulajdonság neve. Nem minden Binding tulajdonság állítható be a Binding kiterjesztéssel, és egyes tulajdonságok csak további beágyazott korrektúrák használatával állíthatók be egy Binding kifejezésben. Lásd: "Kötési tulajdonságok, amelyek a kötéskiterjesztéssel állíthatók be" című szakaszt.
value1, valueN A tulajdonság beállításának értéke. Az attribútumérték kezelése végső soron a beállított Binding tulajdonság típusára és logikájára jellemző.
path Az implicit Binding.Path tulajdonságot beállító útvonal karakterlánc. Lásd még PropertyPath XAML szintaxis.

Nem minősített {Binding}

A "Kötési kifejezés használata" című {Binding} használata egy alapértelmezett értékekkel rendelkező Binding objektumot hoz létre, amely tartalmaz egy kezdeti Binding.Path-t null-ból. Ez sok esetben még mindig hasznos, mert a létrehozott Binding olyan kulcsfontosságú adatkötési tulajdonságokra támaszkodhat, mint például a Binding.Path és Binding.Source a futásidejű adatkörnyezetben. További információért az adatkörnyezet koncepciójáról, lásd: Adatkötési mechanizmus.

Implicit elérési út

A Binding jelölőbővítmény a Binding.Path fogalmi "alapértelmezett tulajdonságként" használja, ahol Path= nem kell megjelennie a kifejezésben. Ha implicit elérési úttal rendelkező Binding kifejezést ad meg, az implicit elérési útnak először meg kell jelennie a kifejezésben, minden olyan bindProp=value pár előtt, ahol a Binding tulajdonság név alapján van megadva. Például: {Binding PathString}, ahol a PathString egy karakterlánc, amelyet a jelöléskiterjesztés használata által létrehozott Binding.Path-ban Binding értékére értékelnek ki. Az implicit elérési utat a vesszőelválasztó után más elnevezett tulajdonságokkal is hozzáfűzheti, például {Binding LastName, Mode=TwoWay}.

Kötési tulajdonságok, amelyek a kötésbővítménnyel állíthatók be

Az ebben a témakörben bemutatott szintaxis az általános bindProp=value közelítést használja, mivel számos olvasási/írási tulajdonsága van BindingBase vagy Binding, amelyek a Binding korrektúrakiterjesztés / kifejezésszintaxisán keresztül állíthatók be. Ezek bármilyen sorrendben beállíthatók, az implicit Binding.Pathkivételével. (Lehetősége van arra, hogy explicit módon adja meg a Path=, amely esetben bármilyen sorrendben beállítható). Alapvetően vesszővel elválasztott bindProp=value párok használatával állíthat be nullát vagy több tulajdonságot az alábbi listában.

Ezen tulajdonságértékek közül több olyan objektumtípust igényel, amely nem támogatja az XAML szövegszintaxisából való natív típusátalakítást, ezért a korrektúrakiterjesztéseket attribútumértékként kell beállítani. További információkért tekintse meg a .NET-keretrendszer osztálytárában található XAML attribútumhasználat szakaszt. az XAML attribútumszintaxishoz használt sztring további jelölőbővítmény-használattal vagy anélkül alapvetően megegyezik az Binding kifejezésben megadott értékkel, azzal a kivétellel, hogy nem helyez idézőjeleket az egyes bindProp=value a Binding kifejezésben.

Az alábbi Binding tulajdonságok nem állíthatók be a Binding korrektúrakiterjesztés/{Binding} kifejezésűrlap használatával.

  • UpdateSourceExceptionFilter: ez a tulajdonság egy visszahívási implementációra való hivatkozást vár. Az XAML szintaxis nem hivatkozhat az eseménykezelőkön kívüli visszahívásokra/metódusokra.

  • ValidationRules: a tulajdonság ValidationRule objektumok általános gyűjteményét veszi igénybe. Ez egy Binding objektumelem tulajdonságelemeként fejezhető ki, de nem rendelkezik könnyen elérhető attribútum-elemzési technikával egy Binding kifejezésben való használathoz. Lásd a ValidationRulesvonatkozó témát.

  • XmlNamespaceManager

Megjegyzések

Fontos

A függőségi tulajdonság elsőbbsége szempontjából a Binding kifejezés egyenértékű egy helyileg beállított értékkel. Ha olyan tulajdonság helyi értékét állítja be, amely korábban Binding kifejezéssel rendelkezett, a Binding teljesen el lesz távolítva. További információk:Dependency Property Value Precedence.

Ez a témakör nem foglalkozik az adatkötés alapszintű leírásával. Lásd adatkötés áttekintése.

Megjegyzés:

MultiBinding és PriorityBinding nem támogatják az XAML-bővítmény szintaxisát. Ehelyett tulajdonságelemeket használna. Lásd a MultiBinding és PriorityBindinghivatkozási témaköreit.

Az XAML logikai értékei nem érzékenyek a kis- és nagybetűkre. Megadhat például {Binding NotifyOnValidationError=true} vagy {Binding NotifyOnValidationError=True}.

Az adatérvényesítést magában foglaló kötéseket általában egy explicit Binding elem határozza meg, nem pedig {Binding ...} kifejezésként, és a kifejezések ValidatesOnDataErrors vagy ValidatesOnExceptions beállítása nem gyakori. Ennek az az oka, hogy a ValidationRules társtulajdonság nem állítható be könnyen a kifejezésűrlapon. További információkért lásd: "Kötésérvényesítés implementálása".

Binding egy korrektúrakiterjesztés. A Markup kiterjesztések általában akkor kerülnek implementálásra, amikor szükség van az attribútumértékek eltérővé tételére a konstans értékektől vagy kezelőnevektől, és a követelmény globálisabb, mint amit bizonyos típusok vagy tulajdonságok típuskonverterei kielégítenének. Az XAML-ben minden korrektúrakiterjesztés az attribútumszintaxisában a { és } karaktereket használja, ez az a konvenció, amellyel az XAML-processzor felismeri, hogy a korrektúrakiterjesztésnek fel kell dolgoznia a sztring tartalmát. További információ: Korrektúrakiterjesztések és WPF XAML.

Binding egy atipikus korrektúrakiterjesztés, amelyben a WPF XAML-implementációjának bővítményfunkcióit megvalósító Binding osztály számos más, az XAML-hez nem kapcsolódó metódust és tulajdonságot is implementál. A többi tag célja, hogy a Binding sokoldalúbb és önállóbb osztálysá tegye, amely az XAML-jelölőbővítmények mellett számos adatkötési forgatókönyvet is képes kezelni.

Lásd még