SlideShare a Scribd company logo
Universal Windows Platform
appの新しいバインディング
2015/12/19 めとべや東京 #10
大田 一希
自己紹介
• 名前/SNS
• 大田 一希(かずき)
• Twitter: @okazuki
• Blog
• かずきのBlog@hatena
http://blog.okazuki.jp/
• その他
• Microsoft MVP for Windows Development
• R初心者
お約束事項
• 記載の内容は個人の見解であり、所属する企業を代表するもの
ではありません。
このセッションのゴール
• 新しいバインディングの使い方を知ってもらう
最初に
• 新しいバインディングは結構バグいので要注意
• でもパフォーマンスはいいよ!
従来のデータバインディング
従来のデータバインディング
• {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 Hoge(object sender, ****EventArgs args)
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をBindingし
てるとき
• 普通のBindingを使うかnullの時に適切な値
を返すようにしておく
まとめ
まとめ
• x:Bindは早い
• x:Bindは融通がきかない
• 型変換の融通がきかない
• x:Bindで大体のことは出来る
• 通常のバインディング
• OneWay/TwoWay/OneTime
• Converterも使える
• いざとなったらBindingsプロパティのUpdateで更新可能
まとめ
• x:Bindでハイパフォーマンスなデータバインディングを!
参考情報
• データ バインディングの詳細
https://msdn.microsoft.com/ja-
jp/library/windows/apps/mt210946.aspx

More Related Content

PPTX
Universal Windows app 入門
PDF
20150530 めとべや東京8 universal windows platform appの画面開発
PPTX
20140531 めとべや東京4 ユニバーサル アプリ入門
PDF
Visual Studio 2015 リリース記念 勉強会 universal windows platform app
PPTX
Blend for visual studio 2013の新機能
PPTX
Blendの便利機能振り返り
PPTX
プログラミングのきっかけ
PPTX
Prism for windows runtime入門
Universal Windows app 入門
20150530 めとべや東京8 universal windows platform appの画面開発
20140531 めとべや東京4 ユニバーサル アプリ入門
Visual Studio 2015 リリース記念 勉強会 universal windows platform app
Blend for visual studio 2013の新機能
Blendの便利機能振り返り
プログラミングのきっかけ
Prism for windows runtime入門

What's hot (20)

PPTX
20150926 uwpストア攻略
PDF
Uno Platform 触ってみた
PDF
Introduction to application architecture on asp.net mvc
PPTX
某rss収集アプリ
PPTX
Uwpアプリケーション開発入門
PPTX
WinUI 3.0 Preview 1を触ってみた(.NETラボ2020年6月登壇資料)
PPTX
XAML + C#で開発するときの Visual Studio 2013(とBlend)の 便利機能
PDF
Universal Apps (UWP)
PPTX
Win/Mac/Android/iOS向け クロスプラットフォーム開発にXamarinが うまくハマりそうだった話
PPTX
Windows10とRaspberryPiで MakerFaireTokyoに参加
PDF
LightSwitchでマルチデータソース
PDF
Prism.Formsについて
PDF
HTMLを1行も書かずにwebアプリを作ってみました
PPTX
Windows ストア アプリの上手な作り方
PPTX
C++からC#まで Visual Studio 縛り (で死ぬ実験)
PPTX
Windows ストアアプリを HTMLで作成する
PPTX
WindowsにおけるUIスレッドの基礎
PDF
Windows10時代のクロスプラットフォーム開発
PDF
無償版Visual StudioでいろいろWeb開発
PPTX
めとべや東京5_XAML
20150926 uwpストア攻略
Uno Platform 触ってみた
Introduction to application architecture on asp.net mvc
某rss収集アプリ
Uwpアプリケーション開発入門
WinUI 3.0 Preview 1を触ってみた(.NETラボ2020年6月登壇資料)
XAML + C#で開発するときの Visual Studio 2013(とBlend)の 便利機能
Universal Apps (UWP)
Win/Mac/Android/iOS向け クロスプラットフォーム開発にXamarinが うまくハマりそうだった話
Windows10とRaspberryPiで MakerFaireTokyoに参加
LightSwitchでマルチデータソース
Prism.Formsについて
HTMLを1行も書かずにwebアプリを作ってみました
Windows ストア アプリの上手な作り方
C++からC#まで Visual Studio 縛り (で死ぬ実験)
Windows ストアアプリを HTMLで作成する
WindowsにおけるUIスレッドの基礎
Windows10時代のクロスプラットフォーム開発
無償版Visual StudioでいろいろWeb開発
めとべや東京5_XAML
Ad

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

PDF
//publish/ MSPTutorial 応用編
PDF
データバインディング徹底攻略
PDF
これからはじめる XAML - WPF プログラミング
PPTX
Msを16倍出し抜くwpf開発1回目
PPTX
かけ算で使いこなす Xamarin
PPTX
120331 silverlight5新機能早めぐり
PDF
Knockout.js を利用したインタラクティブ web アプリケーション開発
//publish/ MSPTutorial 応用編
データバインディング徹底攻略
これからはじめる XAML - WPF プログラミング
Msを16倍出し抜くwpf開発1回目
かけ算で使いこなす Xamarin
120331 silverlight5新機能早めぐり
Knockout.js を利用したインタラクティブ web アプリケーション開発
Ad

More from 一希 大田 (20)

PDF
.NET 7 での ASP.NET Core Blazor の新機能ピックアップ
PDF
Power Apps + C#
PDF
Azure Static Web Apps を試してみた!
PDF
Visual studio 2019 updates pickup!
PPTX
.NET 5 and Windows app dev
PDF
WPF on .NET Core 3.1 で Windows 10 アプリ開発
PDF
.NET Core 3.0 + Windows 10 で WPF 開発
PDF
はじめよう Azure Functions
PDF
Windows 10 対応のデスクトップアプリを作る技術(事前公開版v2)
PDF
Xamarin.Forms アプリケーション 設計パターン
PDF
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
PPTX
WPF on .NET Core 3.0
PDF
Visual Studio 2019 の個人的なお勧め機能(発表時点)
PDF
Visual Studio 2019 の個人的なお勧め機能
PDF
Windows 10 に対応した デスクトップ アプリを作る技術(事前公開版 v2)
PDF
事前公開版 Windows 10 に対応したデスクトップ アプリを作る技術 v1
PDF
スマートスピーカーのバックエンドで Azure を使う方法
PPTX
Visual Studio App center 概要
PDF
はじめての HoloLens セッションの集大成お見せします!
PDF
ペッパソン東の陣 Microsoft 提供 API のご紹介
.NET 7 での ASP.NET Core Blazor の新機能ピックアップ
Power Apps + C#
Azure Static Web Apps を試してみた!
Visual studio 2019 updates pickup!
.NET 5 and Windows app dev
WPF on .NET Core 3.1 で Windows 10 アプリ開発
.NET Core 3.0 + Windows 10 で WPF 開発
はじめよう Azure Functions
Windows 10 対応のデスクトップアプリを作る技術(事前公開版v2)
Xamarin.Forms アプリケーション 設計パターン
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
WPF on .NET Core 3.0
Visual Studio 2019 の個人的なお勧め機能(発表時点)
Visual Studio 2019 の個人的なお勧め機能
Windows 10 に対応した デスクトップ アプリを作る技術(事前公開版 v2)
事前公開版 Windows 10 に対応したデスクトップ アプリを作る技術 v1
スマートスピーカーのバックエンドで Azure を使う方法
Visual Studio App center 概要
はじめての HoloLens セッションの集大成お見せします!
ペッパソン東の陣 Microsoft 提供 API のご紹介

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