Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

めとべや東京10 Universal Windows Platform appの新しいバインディング

3,470 views

Published on

Universal Windows Platform appのコンパイル時データバインディングについての紹介です

Published in: Technology
  • Be the first to comment

めとべや東京10 Universal Windows Platform appの新しいバインディング

  1. 1. Universal Windows Platform appの新しいバインディング 2015/12/19 めとべや東京 #10 大田 一希
  2. 2. 自己紹介 • 名前/SNS • 大田 一希(かずき) • Twitter: @okazuki • Blog • かずきのBlog@hatena http://blog.okazuki.jp/ • その他 • Microsoft MVP for Windows Development • R初心者
  3. 3. お約束事項 • 記載の内容は個人の見解であり、所属する企業を代表するもの ではありません。
  4. 4. このセッションのゴール • 新しいバインディングの使い方を知ってもらう
  5. 5. 最初に • 新しいバインディングは結構バグいので要注意 • でもパフォーマンスはいいよ!
  6. 6. 従来のデータバインディング
  7. 7. 従来のデータバインディング • {Binding …}のことです
  8. 8. 従来のデータバインディング 依存関係プロパティ (コントロールの プロパティ) プロパティ OneTime/OneWay TwoWay OneWayToSource
  9. 9. 従来のデータバインディング • 実行時に評価される • 手書きの値の同期よりは遅い • けれど凄く生産性が高い
  10. 10. UWPの新しいバインディング
  11. 11. UWPの新しいバインディング • {x:Bind …}と書きます • コンパイル時にバインディング • 超早い
  12. 12. UWPの新しいバインディング • Modeは以下の通り • OneTime :初回一度きり(デフォルト) • OneWay :ソースからターゲットへの同期 • TwoWay :ソースとターゲットの双方向
  13. 13. UWPの新しいバインディング • バインディングのコンテキストはDataContextではない • Page/UserControlがコンテキストとなる
  14. 14. Demo(s) 簡単なバインディング
  15. 15. コレクションのバインディング
  16. 16. コレクションのバインディング • 従来通りINotifyCollectionChangedを実装したコレクションを ItemsSourceにバインド
  17. 17. コレクションのバインディング • DataTtemplateでの型指定 • x:DataTypeでDataTemplateのDataContextの型を指定する
  18. 18. Demo(s)
  19. 19. イベントのバインディング
  20. 20. イベントのバインディング • イベントもバインドできる • {x:Bind イベントハンドラ名} • イベントハンドラの型 • void Hoge() • void Hoge(object sender, object args) • void Hoge(object sender, ****EventArgs args)
  21. 21. Demo(s)
  22. 22. Converter & Tips
  23. 23. Converter & Tips • 型変換や値の加工にはConverterを使います • 従来通りIValueConverterを実装
  24. 24. Converter & Tips • 型変換が可能だけど違う型なプロパティ同士のバインディング • キャストすれば確実に代入が可能なバインディング • 何もしないConverterが間に必要
  25. 25. Demo(s)
  26. 26. Converter & Tips • PageにBindingsというプロパティが生成される • Update()を呼ぶとターゲットの値を強制上書き • OneTimeも更新されるので最強
  27. 27. Converter & Tips • ResourceDictionaryで使う方法 • x:Class属性をつける • コードビハインドを準備する
  28. 28. Demo(s)
  29. 29. 注意点 • Styleで使えない • 普通のBindingを使いましょう • 実行時に動的に生成できない • 普通のBindingを使いましょう • 型変換が走る処理にnullが渡ると死ぬ • 例えばImageのSourceにstringをBindingし てるとき • 普通のBindingを使うかnullの時に適切な値 を返すようにしておく
  30. 30. まとめ
  31. 31. まとめ • x:Bindは早い • x:Bindは融通がきかない • 型変換の融通がきかない • x:Bindで大体のことは出来る • 通常のバインディング • OneWay/TwoWay/OneTime • Converterも使える • いざとなったらBindingsプロパティのUpdateで更新可能
  32. 32. まとめ • x:Bindでハイパフォーマンスなデータバインディングを!
  33. 33. 参考情報 • データ バインディングの詳細 https://msdn.microsoft.com/ja- jp/library/windows/apps/mt210946.aspx

×