Skip to content

hsytkm/ReactivePropertySamples

Repository files navigation

ReactivePropertySamples

ReactiveProperty Samples for WPF

.NET 6.0 + C# 9

Created in 2020/06

Updated in 2021/05

Memo

Select()Task を実行する

投げっぱなしなので注意。

_observable
    .ObserveOn(Scheduler.Default)
    .Select(x => Observable.FromAsync(x.CalcAsync))  // await不要
    .Concat()
    .ObserveOnUIDispatcher()
    .ToReadOnlyReactivePropertySlim();

以下の方が良さげ?(Switchは新しい処理が入ったら以前の非同期処理はキャンセルして新しい処理のみを後続に流す)

_observable
    .ObserveOn(Scheduler.Default)
    .Select(x => x.CalcAsync)  // await不要
    .Switch()
    .ObserveOnUIDispatcher()
    .ToReadOnlyReactivePropertySlim();
コレクションの変更
collection.ObserveAddChanged().ToUnit()
    .Merge(collection.ObserveRemoveChanged().ToUnit())
    .Merge(collection.ObserveResetChanged().ToUnit())
    .Subscribe(_ => Debug.WriteLine(collection.Count))
    .AddTo(_disposables);
ReactiveTimer のサンプルがない(漏れてる)

2022.2.27 気づいた。

Reference Website

runceel/ReactiveProperty

かずきのBlog@hatena/ReactiveProperty

MVVMをリアクティブプログラミングで快適にReactivePropertyオーバービュー

ReactiveProperty documentation

ReactiveProperty : WPF/SL/WP7のためのRxとMVVMを繋ぐ拡張ライブラリ

WPFでReactiveProperty入門 ~アプリケーションのステータスやエラー情報をIObservable で通知する

以上

Releases

No releases published

Packages

No packages published

Languages