サーチ…


備考

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)



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow