かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

ReactivePropertyが楽しくて仕方がない

Commandと、その実行結果の紐づけが以下のように流れるようにさっくりと書ける。素敵すぎますよね!!

// LINQ Padで実行

// Commandの定義
var command = new ReactiveCommand();

var collection = default(ReactiveCollection<string>);
collection = command
    .Do(_ => collection.Clear()) // コマンド実行時にコレクションの内容を一旦クリア
    .Select(_ => Enumerable.Range(1, 10).ToObservable()) // モデルからデータをとってきてるつもり
    .Switch() // フラットに
    .Select(i => string.Format("{0}歳", i)) // Viewでの表示用に加工してるつもり
    .ToReactiveCollection(); // 結果をコレクションに

command.Execute(null);
collection.Dump(); // LINQ Padのコンソールに表示するためのメソッド

command.Execute(null);
collection.Dump(); // LINQ Padのコンソールに表示するためのメソッド

こんな感じに書くだけでコマンドが実行された結果、データ(1〜10の値)をとってきて表示用に加工(〜歳)して、コレクションに追加というのが書けるっていいよねという感動を伝えたかっただけです。