xaml
さまざまなXAML方言の違い
サーチ…
備考
XAMLは、Silverlight、Windows Phone、Windows RT、およびUWPアプリケーションで使用されます。さまざまなXAML方言の微妙な違いのために、コードを共有したりコード間でコードを変換したりすることは、望ましい場合よりも難しい場合があります。このトピックでは、これらの相違点の概要を簡単に説明しています。
コンパイルされたデータバインディング:{x:Bind}マークアップ拡張
XAMLを使用するには、データの収集が不可欠です。 UWPアプリケーションのXAML方言は、{x:Bind}マークアップ拡張のような種類のバインディングを提供します。
{Binding XXX}と{x:Bind XXX}はほとんど同じですが、x:Bind拡張がコンパイル時に機能し、デバッグ機能(ブレークポイントなど)とパフォーマンスが向上します。
<object property="{x:Bind bindingPath}" />
x:Bindマークアップ拡張は、UWPアプリケーションでのみ使用できます。詳細については、このMSDNの記事( https://msdn.microsoft.com/en-us/windows/uwp/data-binding/data-binding-in-depth)を参照してください 。
Silverlight、WPF、Windows RTの代替手段:標準の{Binding XXX}構文を使用してください:
<object property="{Binding bindingPath}" />
XAMLでの名前空間のインポート
ほとんどの場合、XAMLファイルに名前空間をインポートする必要があります。これがどのように行われるかは、さまざまなXAMLのバリエーションによって異なります。
Windows Phone、Silverlight、WPFではclr-namespaceの構文を使用します。
<Window ... xmlns:internal="clr-namespace:rootnamespace.namespace"
xmlns:external="clr-namespace:rootnamespace.namespace;assembly=externalAssembly"
>
Windows RT、UWPの使用構文は次のとおりです。
<Page ... xmlns:internal="using:rootnamespace.namespace"
xmlns:external="using:rootnamespace.namespace;assembly=externalAssembly"
>
マルチバインディング
マルチバインディングは、WPF開発専用の機能です。これは、一度に複数の値へのバインドを可能にします(通常、MultiValueConverterで使用されます)。
<TextBox>
<TextBox.Text>
<MultiBinding Converter="{StaticResource MyConverter}">
<Binding Path="PropertyOne"/>
<Binding Path="PropertyTwo"/>
</MultiBinding>
</TextBox.Text>
</TextBox>
WPF以外のプラットフォームはマルチバインディングをサポートしていません。別の解決策(ビューやコンバーターからビューモデルにコードを移動するなど)や、この記事のようなサードパーティの行動を利用する必要があります。http : //www.damirscorner.com/blog/posts/20160221-MultibindingInUniversalWindowsApps.html)