Quantcast
Channel: かずきのBlog@hatena
Viewing all articles
Browse latest Browse all 1387

複数のプロパティを監視してReactivePropertyの値を更新する

$
0
0

こういう場合は2つのIObservableをCombineLatestで合成してからReactivePropertyにしてしまえばお手軽です。

using Reactive.Bindings;
using System.Reactive.Linq;

namespace MultiValueApp
{
    class MainWindowViewModel
    {
        public ReactiveProperty<int> Lhs { get; }
        public ReactiveProperty<int> Rhs { get; }
        public ReadOnlyReactiveProperty<int> Answer { get; }

        public MainWindowViewModel()
        {
            this.Lhs = new ReactiveProperty<int>(0);
            this.Rhs = new ReactiveProperty<int>(0);
            this.Answer = this.Lhs.CombineLatest(this.Rhs, (x, y) => x + y)
                .ToReadOnlyReactiveProperty();
        }
    }
}

この例では、監視元はReactivePropertyですが通常のINotifyPropertyChangedを実装したクラスはObservePropertyでIObservable化できるので、そいつをCombineLatestしてやればOKです。


Viewing all articles
Browse latest Browse all 1387

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>