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.

ReactiveProperty

6,497 views

Published on

めとべや東京 #7のLT資料です。

Published in: Technology
  • Be the first to comment

ReactiveProperty

  1. 1. ReactivePropertyの紹介 2015/02/20 めとべや東京 #7 大田 一希
  2. 2. 自己紹介  名前 – 大田 一希(かずき) – Twitter:okazuki  Blog – かずきのBlog@hatena http://okazuki.hatenablog.com/  生年月日 – 1981年1月30日(34歳)  趣味 – ReactivePropertyいじり – 愛犬
  3. 3. お約束  記載の内容は個人の見解であり、所属する企業を代表するもの ではありません。
  4. 4. ReactivePropertyとは
  5. 5. MVVMで個人的にめんどいところ  Mの変更通知を監視してVMに反映する – M→VMへのプロパティの値の田植コード  発狂 – VM→Mへのプロパティの値の田植コード  発狂(再  ↑を解決してくれる!!
  6. 6. ReactivePropertyとは  Reactive ExtensionsをベースとしたMVVMを支援するライブラリ  neueccさん作 – 現在はxin9leさんと私も加わってメンテナンス中  幅広いプラットフォームに対応 – Silverlight 4, 5以外なら動くと思ってOK  基本機能 – IObservable<T> → ReactiveProperty<T>
  7. 7. IObservable<T>って何よ?  Push型のコレクション 時間
  8. 8. 身近でIObservable<T>になるものを  Event – INotifyPropertyChanged, INotifyCollectionChanged, etc…  非同期処理 – Task<T>  普通のコレクション – IEnumerable<T> (無理やりに見たら0秒の間に一気に値が発生する…)
  9. 9. ReactivePropertyどう使うの?  ModelからViewModelのプロパティ生成 – private ReactiveProperty<string> Property { get; private set; } // コンストラクタで初期化する var model = new Model(); // INotifyPropertyChangedを実装したModel // M → VM単一方向 this.Property = model .ObservableProperty(x => x.Property) // IObservable<T>に変換 .ToReactiveProperty(); // ReactiveProperty<T>に変換
  10. 10. ReactivePropertyどう使うの?  ModelからViewModelのプロパティ生成 – private ReactiveProperty<string> Property { get; private set; } // コンストラクタで初期化する var model = new Model(); // INotifyPropertyChangedを実装したModel // M ←→ VM双方向 this.Property = model .ToReactivePropertyAsSynchronized(x => x.Property); // RP<T>に変換
  11. 11. XAMLでバインドするには  ReactivePropertyのValueプロパティをバインドする – <TextBlock Text=“{Binding Property.Value}” />
  12. 12. ReactivePropertyを使うと  とても宣言的!
  13. 13. その他にも便利クラスあります  IObservable<bool>から生成するReactiveCommand  ObservableCollection<T>から生成するReadOnlyReactiveCollection  ReactiveProperty<T>のバリデーション機能  Reactive Extensions用の便利メソッド
  14. 14. まとめ  唯一惚れてるライブラリです  少しでも興味が湧いたら使ってみてください
  15. 15. 参考  ホームページ https://github.com/runceel/ReactiveProperty  ReactiveProperty : Rx + MVVMへの試み(原典) http://neue.cc/2011/08/26_341.html  ReactiveProperty オーバービュー http://okazuki.hatenablog.com/entry/2014/05/07/014133

×