Windowsフォーム開発者のためのWindows 10 UWPアプリ開発入門(後編)特集:UWPとは何か(2/5 ページ)

» 2015年10月06日 05時00分 公開
[山本康彦BluewaterSoft/Microsoft MVP for Windows Platform Development]

UWPアプリのデータバインドの特徴

 以上のように、Windowsフォームのデータバインドは、ウィザードやプロパティウィンドウで設定しなければならず、少々面倒だ。UWPアプリでは、ウィザードなどによらずXAMLコードでデータバインドの指定が可能である。実際のコード例は、別途公開のサンプル(「S2_DataBind」ディレクトリの下にある「S2_02_UwpApp」プロジェクト)をご覧いただきたい。また、後述する「6. Webサービスの利用〜『クラウド型』アーキテクチャ」でも、XAMLコードでバインドする例を紹介している。

 また、UWPアプリでは、例えば次の画像のように色の名前(文字列)とUIコントロールのBackgroundプロパティ(Windows.UI.Xaml.Media名前空間のBrush型)をバインドできるなど、柔軟性も向上している。

テキストボックスに色名や16進表記の色をキー入力すると、四角の色が変わる
テキストボックスに色名や16進表記の色をキー入力すると、
四角の色が変わる
UWPアプリでのデータバインドの例 UWPアプリでのデータバインドの例
色の付いた四角形のBackgroundプロパティを、その中に置いたテキストボックスのTextプロパティにバインドしてある。テキストボックスにキー入力すると、(それが色として解釈できるなら)四角形の色が変わる。
なお、キー入力した文字列が色として解釈できない場合は例外が発生する。例外発生時にアプリが落ちてしまうわけではないが、きちんと処理するにはバリューコンバーターというクラスを書いてバインド時に指定する。

 なお、UWPアプリのデータバインドには、次の2種類がある。

  • コンパイル時バインディング: XAMLコードで「x:Bind」というキーワードを使う。コンパイル時にバインドが解決されるので、実行は高速である。その代わり、コンパイル時にデータの型が決まっていなければならないという制約がある
  • 実行時バインディング: XAMLコードで「Binding」というキーワードを使う。実行時にバインドを解決するため、実行速度は遅い。その代わり、コンパイル時にデータの型が分かっている必要はなく、実行時に異なる型のデータを与えてもプロパティ名さえ同じであればバインドしてくれるという柔軟性を持つ

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。