public TrainViewModel(Train model) : base(model) { Class = model.ObserveProperty(m => m.Class).ToReactiveProperty(); LineColor = model.ObserveProperty(m => m.LineColor).ToReactiveProperty(); Seat = model.ObserveProperty(m => m.Seat).Select(s => new TransportSeatViewModel(s)).ToReactiveProperty(); HasRestRoom = model.ObserveProperty(m => m.HasRestRoom).ToReactiveProperty(); MealType = model.ObserveProperty(m => m.MealType).ToReactiveProperty(); // ViewModel -> Model Class.Subscribe(x => model.Class = x).AddTo(Disposables); LineColor.Subscribe(x => model.LineColor = x).AddTo(Disposables); HasRestRoom.Subscribe(x => model.HasRestRoom = x).AddTo(Disposables); }