2016-07-17 2 views
0

У меня есть вопрос относительно форм Xamarin. Является ли реактивное расширение просто расширением существующей библиотеки .net? все это поддерживает mvvm frameworks (FreshMvvm, MvvmCross, MvvmLight)? Или это новая структура mvvm?Xamarin Forms: 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, чтобы сделать их более мощными.

И отличный пример структуры MVVM, которая сильно использует Rx, - http://reactiveui.net/. Попробуй.

+0

Есть ли какие-либо конкретные обстоятельства, при которых использование реактивного UI имеет больше смысла? – TheDeveloper

+0

@AzharAli - Имеет больше смысла, чем то, что? Больше смысла, чем использование Rx? Когда вам нужен MVVM. Больше смысла, чем другой MVVM? Когда вы будете знакомы с Rx, это будет потрясающий выбор. Вы можете уточнить свой вопрос? – Enigmativity

+0

[Вот подробная статья] (http://fullstackmark.com/post/5/a-simple-vocabulary-app-using-reactiveui-and-xamarin-forms), которая использует MVVM с ReactiveUI и Xamarin Forms. – mmacneil007

Смежные вопросы