public SingleRecordDatabaseCellViewModel(int columnIndex, DatabaseColumnJson columnDefinition, DatabaseEntityViewModel parent, DatabaseEntity parentEntity, IDatabaseField tableField, IParameterValue parameterValue) : base(parentEntity)
    {
        ColumnIndex    = columnIndex * 2;
        CanBeNull      = columnDefinition.CanBeNull;
        IsReadOnly     = columnDefinition.IsReadOnly;
        ColumnName     = columnDefinition.Name;
        Parent         = parent;
        TableField     = tableField;
        ParameterValue = parameterValue;

        if (UseItemPicker)
        {
            AutoDispose(ParameterValue.ToObservable().Subscribe(_ => RaisePropertyChanged(nameof(OptionValue))));
        }

        if (UseFlagsPicker)
        {
            AutoDispose(ParameterValue.ToObservable().Subscribe(_ => RaisePropertyChanged(nameof(AsLongValue))));
        }

        OriginalValueTooltip =
            tableField.IsModified ? "Original value: " + parameterValue.OriginalString : null;
        AutoDispose(parameterValue.ToObservable("Value").Skip(1).SubscribeAction(_ =>
        {
            Parent.RaiseChanged(this, tableField.FieldName);
            OriginalValueTooltip =
                tableField.IsModified ? "Original value: " + parameterValue.OriginalString : null;
            RaisePropertyChanged(nameof(OriginalValueTooltip));
            RaisePropertyChanged(nameof(AsBoolValue));
            RaisePropertyChanged(nameof(IsModified));
        }));
    }