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.

いまさら学ぶMVVMパターン

11,868 views

Published on

Fukuoka.NET #5 での発表資料です
https://fukuten.connpass.com/event/48572/

Published in: Technology
  • Login to see the comments

いまさら学ぶMVVMパターン

  1. 1. いまさら学ぶ MVVMパターン 2017/01/27 Fukuoka.NET @tsubakimoto_s
  2. 2. 自己紹介 松村 優大 (Yuta Matsumura) MLBお兄さん (通称) C# / PHP / Frontend / Azure / AWS Microsoft MVP (Visual Studio and Development Technologies) 2 所属 コミュニティ
  3. 3. 本編 3
  4. 4. 2016/12/10 4
  5. 5. 5
  6. 6. xamarin/dev-days-labs chomado/xamarin-dev-doc 6
  7. 7. MVVM 7
  8. 8. Model-View-ViewModel 8
  9. 9. これから デスクトップアプリ を作る人 9
  10. 10. WPF 10 だよね?
  11. 11. WinForm 11 お、おう…
  12. 12. いつまでWinFormで 消耗してるの? 12
  13. 13. Silverlight 13 あっはい
  14. 14. いつまでSilverlightで 消耗してるの? 14
  15. 15. MVVM •Model-View-ViewModel •WPFやSilverlightで使われている概念 •Xamarin •Javascript • AngularJS • Knockout.js • Vue.js 15
  16. 16. • データ(≒テーブル)の管理 • ビジネスロジック M • ユーザインターフェースV • ModelからViewへ出力データを渡す • ViewからModelへ入力データ渡す VM 16
  17. 17. MVVMを支える技術 17 http://cases.azoft.com/mvvm-android-data-binding/
  18. 18. MVVMを支える技術 データバインディング 18
  19. 19. MVVMを支える技術 データバインディング INotifyPropertyChanged ICommand ObservableCollection<T> 19
  20. 20. INotifyPropertyChanged •プロパティ値が変更されたことをク ライアントに通知する。 https://msdn.microsoft.com/ja- jp/library/system.componentmodel.inotifypropertychanged(v=vs.110).aspx •Viewに表示するプロパティをもつ ModelやViewModelに実装する。 20
  21. 21. ICommandインターフェース •バインド可能なコマンドを定義する。 https://msdn.microsoft.com/ja- jp/library/system.windows.input.icommand(v=vs.110).aspx •コードビハインド(*.xaml.cs)での コマンドは定義しない。 21
  22. 22. ObservableCollection<T>クラス •項目が追加または削除されたとき、 あるいはリスト全体が更新されたと きに通知を行う動的なデータ コレク ションを表す。 https://msdn.microsoft.com/ja-jp/library/ms668604(v=vs.110).aspx •List<T>やIEnumerable<T>では 項目変更が通知されないため注意。 22
  23. 23. バインディング方向 •System.Windows.Data.BindingMode •OneWay • ソースの変更を検知・反映 •TwoWay • ソースの変更を検知・反映 • バインド先の変更を検知・反映 23
  24. 24. デモ https://msdn.microsoft.com/ja-jp/library/hh563947(v=vs.110).aspx 24
  25. 25. Thank you!!

×