特集
Windowsフォーム開発者のためのWindows 10 UWPアプリ開発入門(後編):特集:UWPとは何か(2/5 ページ)
本稿ではデータバインド/非同期処理/ファイル操作/クラウド型アーキテクチャという、Windowsフォームとは異なるUWPプログラミングの特徴を取り上げる。
UWPアプリのデータバインドの特徴
以上のように、Windowsフォームのデータバインドは、ウィザードやプロパティウィンドウで設定しなければならず、少々面倒だ。UWPアプリでは、ウィザードなどによらずXAMLコードでデータバインドの指定が可能である。実際のコード例は、別途公開のサンプル(「S2_DataBind」ディレクトリの下にある「S2_02_UwpApp」プロジェクト)をご覧いただきたい。また、後述する「6. Webサービスの利用〜『クラウド型』アーキテクチャ」でも、XAMLコードでバインドする例を紹介している。
また、UWPアプリでは、例えば次の画像のように色の名前(文字列)とUIコントロールのBackgroundプロパティ(Windows.UI.Xaml.Media名前空間のBrush型)をバインドできるなど、柔軟性も向上している。
テキストボックスに色名や16進表記の色をキー入力すると、
四角の色が変わる
四角の色が変わる
▼
UWPアプリでのデータバインドの例
色の付いた四角形のBackgroundプロパティを、その中に置いたテキストボックスのTextプロパティにバインドしてある。テキストボックスにキー入力すると、(それが色として解釈できるなら)四角形の色が変わる。
なお、キー入力した文字列が色として解釈できない場合は例外が発生する。例外発生時にアプリが落ちてしまうわけではないが、きちんと処理するにはバリューコンバーターというクラスを書いてバインド時に指定する。
なお、UWPアプリのデータバインドには、次の2種類がある。
- コンパイル時バインディング: XAMLコードで「x:Bind」というキーワードを使う。コンパイル時にバインドが解決されるので、実行は高速である。その代わり、コンパイル時にデータの型が決まっていなければならないという制約がある
- 実行時バインディング: XAMLコードで「Binding」というキーワードを使う。実行時にバインドを解決するため、実行速度は遅い。その代わり、コンパイル時にデータの型が分かっている必要はなく、実行時に異なる型のデータを与えてもプロパティ名さえ同じであればバインドしてくれるという柔軟性を持つ
【コラム】 データバインドについてさらに詳しく!
Windowsフォームのデータバインドについては、次のMSDNドキュメントをご覧いただきたい。
UWPアプリのデータバインドについては、次のMSDNドキュメントをご覧いただきたい。
また、次はWindows 8.0時代の記事であるが、UWPアプリのデータバインドを理解する助けになるはずだ。
- WinRT/Metro TIPS: 文字列をコントロールにバインドするには?[Win 8/WP 8]
- WinRT/Metro TIPS: 文字列以外の値をコントロールにバインドするには?[Win 8/WP 8]
- WinRT/Metro TIPS: バインドするデータのPropertyChangedを楽に実装するには?[Win 8/WP 8]
- WinRT/Metro TIPS: コントロール同士をデータ・バインドするには?[Win 8/WP 8]
- WinRT/Metro TIPS: データ・コレクションをバインドするには?[Win 8/WP 8]
- WinRT/Metro TIPS: 複雑なデータをバインドするには?[Win 8/WP 8]
- WinRT/Metro TIPS: ユーザー操作によるオプション設定を即座にデータに反映するには?[Win 8]
Copyright© Digital Advantage Corp. All Rights Reserved.