public SubtypingViewModel(SubtypingProperty property, ViewModelFactory factory) : base(property) { Instance = Property.Model.Where(x => x != null) .Select(x => factory.Create(x, true)) .ToReactiveProperty(); EditCommand = property.Model.Select(x => x != null) .ToReactiveCommand(); EditCommand.Where(x => Instance.Value != null).Subscribe(x => { ShowDetailSubject.OnNext(Instance.Value); }); Instance.Subscribe(x => ShowDetailSubject.OnNext(null)); OnChanged = Instance.Where(x => x != null) .SelectMany(x => x.OnChanged) .Merge(Instance.Select(x => Unit.Default)); }