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

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

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

            AutoDispose(parameterValue.ToObservable().SubscribeAction(_ =>
            {
                OriginalValueTooltip =
                    tableField.IsModified ? "Original value: " + parameterValue.OriginalString : null;
                RaisePropertyChanged(nameof(OriginalValueTooltip));
                RaisePropertyChanged(nameof(AsBoolValue));
            }));
        }
Пример #2
0
 public DatabaseCellViewModel(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));
     }));
 }
Пример #3
0
        public DatabaseCellViewModel(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;
            DbColumnName   = columnDefinition.DbColumnName;
            Parent         = parent;
            TableField     = tableField;
            ParameterValue = parameterValue;

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

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

            AutoDispose(parameterValue.ToObservable().SubscribeAction(_ =>
            {
                OriginalValueTooltip =
                    tableField.IsModified ? "Original value: " + parameterValue.OriginalString : null;
                RaisePropertyChanged(nameof(OriginalValueTooltip));
                RaisePropertyChanged(nameof(AsBoolValue));
            }));
            if (parameterValue.BaseParameter is DatabaseStringContextualParameter contextual)
            {
                var other = parent.Cells.FirstOrDefault(c => c.DbColumnName == contextual.Column);
                if (other != null)
                {
                    AutoDispose(other.ParameterValue !.ToObservable().Subscribe(_ =>
                    {
                        parameterValue.RaiseChanged();
                    }));
                }
                else
                {
                    Console.WriteLine("Couldn't find column " + contextual.Column);
                }
            }
        }