UWP、Binding
またはx:Bind
で使用するものと、それらの違いは何ですか?
なぜなら、人々がBinding
を使用し、UWPでx:Bind
でのみバインドする投稿がたくさんあるからです。
MSDNホームページでは、「{x:Bind}
と{Binding}
によって作成されたバインディングオブジェクトは、機能的にほぼ同等である」としか書かれていません。 x:Bind
はfasterです。
しかし、それらの違いは何ですか?
「ほぼ機能的に同等」とは同等を意味しないためです。
私の引用からのリンク: [〜#〜] msdn [〜#〜]
だから私の質問は:
UWPでBindingまたはx:Bindを使用する場合の違いは何ですか?
以下はおそらく完全ではありませんが、いくつかの大きな違いは
古いスタイル{Binding }
{x:Bind }
ビルド14393以降 、{x:Bind }
サポート:
新しい{x:Bind}は実行時に少し速くなりますが、同様に重要なことは、誤ったバインディングに対してコンパイラエラーを発生させることです。 {Binding}を使用すると、ほとんどの場合、空のコントロールが表示されます。
{x:Bind}
は、コンパイル時に生成される特別な目的のコードを実行します。 {Binding}
は、汎用ランタイムオブジェクト検査を使用します。その結果、{x:Bind}
は優れたパフォーマンスを発揮し、バインディング式のコンパイル時の検証を提供します。ページの部分クラスとして生成されるコードファイルにブレークポイントを設定できるようにすることで、デバッグをサポートします。
{x:Bind}
は生成されたコードを使用してその利点を実現するため、コンパイル時に型情報が必要です。これは、事前にタイプがわからないプロパティにバインドできないことを意味します。このため、{x:Bind}
をObject型のDataContextプロパティと共に使用することはできません。また、実行時に変更される場合があります。 {x:Bind}
マークアップ拡張機能(Windows 10の新機能)は、{Binding}
の代わりになります。 {x:Bind}
には{Binding}
の機能の一部が欠けていますが、{Binding}
よりも少ない時間と少ないメモリで実行され、より良いデバッグをサポートします。