uwp
バインディング対x:バインド
サーチ…
構文
<object property = "{x:Bind}" ... />
<object property = "{x:Bind propertyPath}" ... />
<objectプロパティ= "{x:バインドパス= propertyPath}" ... />
<object property = "{x:Bind [bindingProperties]}" ... />
<object property = "{x:Bind propertyPath、[bindingProperties]}" ... />
<object property = "{x:バインドパス= propertyPath、[bindingProperties]}" ... />
備考
Windows 10の{x:Bind}
マークアップ拡張機能は、 {Binding}
代替品です。
{x:Bind}
の機能の一部欠け{Binding}
、それはより少ない時間とより少ないメモリで実行{Binding}
より良いデバッグをサポートします。
XAMLの読み込み時に、 {x:Bind}
はバインディングオブジェクトと考えることができるものに変換され、このオブジェクトはデータソースのプロパティから値を取得します。バインディングオブジェクトは、オプションで、データソースプロパティの値の変更を監視し、変更に基づいて自身を更新するように構成できます。また、オプションで、独自の値の変更をソースプロパティにプッシュバックするように設定することもできます。 {x:Bind}
と{Binding}
によって作成されたバインディングオブジェクトは、機能的に同等です。しかし、 {x:Bind}
はコンパイル時に生成する専用コードを実行し、 {Binding}
は汎用実行時オブジェクト検査を使用します。したがって、 {x:Bind}
バインディング(コンパイル済みバインディングと呼ばれることもあります)は、パフォーマンスが高く、バインディング式のコンパイル時検証を提供し、部分的に生成されるコードファイルにブレークポイントを設定できるようにすることでデバッグをサポートしますあなたのページのクラス。これらのファイルは、(C#の場合).g.csのような名前でobjフォルダにあります。
詳細については、 x:Bindに関するMSDNのドキュメントを参照してください。
関数から{x:Bind}を評価する
この機能は、v1607の後のBindマークアップ拡張機能(Redstone 1)に追加されました。
関数パスとargパスとconstant argsを指定することができます。バックコードに定義されている関数があるとしましょう:
public string Translate(string text, string from, string to)
今度はbindを使って関数を必要な要素に評価することができます:
<TextBlock Name="SomeText" Text="How are you?" />
<TextBlock Name="{x:Bind Translate(SomeText.Text, 'en', 'es')}" />
関数とargのパスには、ドットとキャストも含めることができます。