ReactiveUI 是集成了 .Net 的 ReatIve 扩展的 MVVM 框架,用来创建运行与任何移动设备或者桌面平台的优雅的可测试的用户接口。它支持 Xamarin.iOS,Xamarin.Android,Xamarin.Mac, WPF,Windows Forms,Windows Phone 8 和 Windows Store 应用程序。
示例代码:
public class ColorChooserThatDoesntLikeGreen : ReactiveObject { // // Declaring a read/write property // byte _Red; public byte Red { get { return _Red; } set { this.RaiseAndSetIfChanged(value); } } byte _Green; public byte Green { get { return _Green; } set { this.RaiseAndSetIfChanged(value); } } byte _Blue; public byte Blue { get { return _Blue; } set { this.RaiseAndSetIfChanged(value); } } // // Declaring a Property that's based on an Observable // ObservableAsPropertyHelper<Color> _Color; public Color Color { get { return _Color.Value; } } ReactiveCommand OkButton { get; protected set; } public ColorChooserThatDoesntLikeGreen() { var finalColor = this.WhenAny(x => x.Red, x => x.Green, x => x.Blue, (r,g,b) => Color.FromRGB(r.Value, g.Value, b.Value)); finalColor.ToProperty(this, x => x.Color, out _Color); // When the finalColor has full green, the Ok button is disabled OkButton = new ReactiveCommand(finalColor.Select(x => x.Green != 255)); } }