2016-07-17 6 views
0

私はXamarinフォームに関する質問があります。リアクティブエクステンションは既存の.netライブラリの拡張機能ですか?すべてのmvvmフレームワーク(FreshMvvm、MvvmCross、MvvmLight)はそれをサポートしていますか?それとも、新しいmvvmフレームワークですか?Xamarinフォーム:Reactive Extensions(Rx)はMVVMパターンを置き換えるフレームワークですか?

+0

この質問は興味深いものです:https://stackoverflow.com/questions/34727584/reactiveui-rxui-vs-reactive-extensions – pmbanka

+0

これはまさに私が探していたものです。 – TheDeveloper

答えて

3

すべてのMVVMフレームワークがRxをサポートしていると答えることはできませんが、RxはMVVMを置き換えるものではなく、MVVMフレームワークとは限りません。

Rxはプッシュされる(イベントのように)値のコレクションを構成するためのフレームワークです。これは、MVVMフレームワークでも使用できます。イベントも使用できます。

はここでイベントを消費するのRxを使用しての小さな一例です:

void Main() 
{ 
    var foo = new Foo(); 
    var bars = Observable.FromEventPattern<int>(h => foo.Bar += h, h => foo.Bar -= h); 
    var subsciption = bars.Subscribe(ep => Console.WriteLine(ep.EventArgs)); 
    foo.OnBar(42); 
} 

public class Foo 
{ 
    public event EventHandler<int> Bar; 
    public void OnBar(int i) 
    { 
     this.Bar?.Invoke(this, i); 
    } 
} 

これは、コンソールに42を書き込みます。

var query = 
     from b in bars 
     where b.EventArgs > 21 
     select b.EventArgs * 2; 

    var subsciption = query.Subscribe(i => Console.WriteLine(i)); 

    foo.OnBar(42); 
    foo.OnBar(7); 
    foo.OnBar(20); 
    foo.OnBar(21); 
    foo.OnBar(22); 

をそして今、私は、コンソールにのみ84 & & 44を書きます、より複雑なクエリを持っている:

しかし、私はこれを行うことができます。

このタイプのものは、MVVMフレームワークでより強力なものにするために使用できます。

Rxを強く使用するMVVMフレームワークの優れた例はhttp://reactiveui.net/です。試してごらん。

+0

reactUIを使用するのが理にかなっている状況ですか? – TheDeveloper

+0

@AzharAli - 何よりも理にかなっていますか? Rxを使用するよりも理にかなっていますか? MVVMが必要なとき。他のMVVMよりも理にかなっていますか?あなたがRxに慣れているとき、それはすばらしい選択になるでしょう。あなたの質問を明確にすることはできますか? – Enigmativity

+0

ReactUIとXamarinフォームでMVVMを使用する[詳細はこちら](http://fullstackmark.com/post/5/a-simple-vocabulary-app-using-reactiveu-and-xamarin-forms) – mmacneil007

関連する問題