O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Universal Windows Platform
appの新しいバインディング
2015/12/19 めとべや東京 #10
大田 一希
自己紹介
• 名前/SNS
• 大田 一希(かずき)
• Twitter: @okazuki
• Blog
• かずきのBlog@hatena
http://blog.okazuki.jp/
• その他
• Microsoft MVP for ...
お約束事項
• 記載の内容は個人の見解であり、所属する企業を代表するもの
ではありません。
このセッションのゴール
• 新しいバインディングの使い方を知ってもらう
最初に
• 新しいバインディングは結構バグいので要注意
• でもパフォーマンスはいいよ!
従来のデータバインディング
従来のデータバインディング
• {Binding …}のことです
従来のデータバインディング
依存関係プロパティ
(コントロールの
プロパティ)
プロパティ
OneTime/OneWay
TwoWay
OneWayToSource
従来のデータバインディング
• 実行時に評価される
• 手書きの値の同期よりは遅い
• けれど凄く生産性が高い
UWPの新しいバインディング
UWPの新しいバインディング
• {x:Bind …}と書きます
• コンパイル時にバインディング
• 超早い
UWPの新しいバインディング
• Modeは以下の通り
• OneTime :初回一度きり(デフォルト)
• OneWay :ソースからターゲットへの同期
• TwoWay :ソースとターゲットの双方向
UWPの新しいバインディング
• バインディングのコンテキストはDataContextではない
• Page/UserControlがコンテキストとなる
Demo(s)
簡単なバインディング
コレクションのバインディング
コレクションのバインディング
• 従来通りINotifyCollectionChangedを実装したコレクションを
ItemsSourceにバインド
コレクションのバインディング
• DataTtemplateでの型指定
• x:DataTypeでDataTemplateのDataContextの型を指定する
Demo(s)
イベントのバインディング
イベントのバインディング
• イベントもバインドできる
• {x:Bind イベントハンドラ名}
• イベントハンドラの型
• void Hoge()
• void Hoge(object sender, object args)
• void...
Demo(s)
Converter & Tips
Converter & Tips
• 型変換や値の加工にはConverterを使います
• 従来通りIValueConverterを実装
Converter & Tips
• 型変換が可能だけど違う型なプロパティ同士のバインディング
• キャストすれば確実に代入が可能なバインディング
• 何もしないConverterが間に必要
Demo(s)
Converter & Tips
• PageにBindingsというプロパティが生成される
• Update()を呼ぶとターゲットの値を強制上書き
• OneTimeも更新されるので最強
Converter & Tips
• ResourceDictionaryで使う方法
• x:Class属性をつける
• コードビハインドを準備する
Demo(s)
注意点
• Styleで使えない
• 普通のBindingを使いましょう
• 実行時に動的に生成できない
• 普通のBindingを使いましょう
• 型変換が走る処理にnullが渡ると死ぬ
• 例えばImageのSourceにstringをBi...
まとめ
まとめ
• x:Bindは早い
• x:Bindは融通がきかない
• 型変換の融通がきかない
• x:Bindで大体のことは出来る
• 通常のバインディング
• OneWay/TwoWay/OneTime
• Converterも使える
• い...
まとめ
• x:Bindでハイパフォーマンスなデータバインディングを!
参考情報
• データ バインディングの詳細
https://msdn.microsoft.com/ja-
jp/library/windows/apps/mt210946.aspx
Próximos SlideShares
Carregando em…5
×

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

3.997 visualizações

Publicada em

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

Publicada em: Tecnologia
  • Sex in your area is here: ❤❤❤ http://bit.ly/2Qu6Caa ❤❤❤
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • Follow the link, new dating source: ❶❶❶ http://bit.ly/2Qu6Caa ❶❶❶
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui

めとべや東京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

×