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));
        }));
    }
 public SingleRecordDatabaseCellViewModel(int columnIndex, string columnName, ICommand action, DatabaseEntityViewModel parent, DatabaseEntity entity, string label) : base(entity)
 {
     Parent               = parent;
     ColumnIndex          = columnIndex * 2;
     CanBeNull            = false;
     IsReadOnly           = false;
     ColumnName           = columnName;
     OriginalValueTooltip = null;
     ActionCommand        = action;
     ActionLabel          = label;
 }
 public SingleRecordDatabaseCellViewModel(int columnIndex, string columnName, ICommand action, DatabaseEntityViewModel parent, DatabaseEntity entity, System.IObservable <string> label) : base(entity)
 {
     Parent               = parent;
     ColumnIndex          = columnIndex * 2;
     CanBeNull            = false;
     IsReadOnly           = false;
     ColumnName           = columnName;
     OriginalValueTooltip = null;
     ActionCommand        = action;
     AutoDispose(label.SubscribeAction(s =>
     {
         ActionLabel = s;
         RaisePropertyChanged(nameof(ActionLabel));
     }));
 }