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));
        }