async System.Threading.Tasks.Task UpdateValueWithStep(bool stepUp) { if (Disabled || ReadOnly) { return; } var step = string.IsNullOrEmpty(Step) || Step == "any" ? 1 : double.Parse(Step.Replace(",", "."), System.Globalization.CultureInfo.InvariantCulture); var valueToUpdate = Value != null?Convert.ChangeType(Value, typeof(decimal)) : (decimal)Convert.ChangeType(default(decimal), typeof(decimal)); var newValue = ((decimal)Convert.ChangeType(valueToUpdate, typeof(decimal))) + (decimal)Convert.ChangeType(stepUp ? step : -step, typeof(decimal)); if (Max.HasValue && newValue > Max.Value || Min.HasValue && newValue < Min.Value || object.Equals(Value, newValue)) { return; } Value = (TValue)ConvertType.ChangeType(newValue, typeof(TValue)); await ValueChanged.InvokeAsync(Value); if (FieldIdentifier.FieldName != null) { EditContext?.NotifyFieldChanged(FieldIdentifier); } await Change.InvokeAsync(Value); StateHasChanged(); }
private void button1_Click(object sender, EventArgs e) { // Change data data++; object o = data; // store data string s = o.ToString(); int result = ConvertType.ChangeType <int>(s); }
private void button2_Click(object sender, EventArgs e) { // Change data object o = status; status++; // store data string s = o.ToString(); EngineEventArgs.EventStatus result = ConvertType.ChangeType <EngineEventArgs.EventStatus>(s); }
private async System.Threading.Tasks.Task InternalValueChanged(object value) { TValue newValue; try { BindConverter.TryConvertTo <TValue>(RemoveNonNumericCharacters(value), Culture, out newValue); } catch { newValue = default(TValue); } decimal?newValueAsDecimal = newValue == null ? default(decimal?) : (decimal)ConvertType.ChangeType(newValue, typeof(decimal)); if (object.Equals(Value, newValue) && !ValueChanged.HasDelegate) { await JSRuntime.InvokeAsync <string>("Radzen.setInputValue", input, Value); return; } if (Max.HasValue && newValueAsDecimal > Max.Value) { newValueAsDecimal = Max.Value; } if (Min.HasValue && newValueAsDecimal < Min.Value) { newValueAsDecimal = Min.Value; } Value = (TValue)ConvertType.ChangeType(newValueAsDecimal, typeof(TValue)); if (!ValueChanged.HasDelegate) { await JSRuntime.InvokeAsync <string>("Radzen.setInputValue", input, Value); } await ValueChanged.InvokeAsync(Value); if (FieldIdentifier.FieldName != null) { EditContext?.NotifyFieldChanged(FieldIdentifier); } await Change.InvokeAsync(Value); }
public async System.Threading.Tasks.Task OnValueChange(decimal value, bool isMin) { var step = string.IsNullOrEmpty(Step) || Step == "any" ? 1 : decimal.Parse(Step.Replace(",", "."), System.Globalization.CultureInfo.InvariantCulture); var newValue = Math.Round((value - MinValue()) / step) * step + MinValue(); if (Range) { var oldMinValue = ((IEnumerable)Value).OfType <object>().FirstOrDefault(); var oldMaxValue = ((IEnumerable)Value).OfType <object>().LastOrDefault(); var type = typeof(TValue).IsGenericType ? typeof(TValue).GetGenericArguments()[0] : typeof(TValue); var convertedNewValue = ConvertType.ChangeType(newValue, type); var newValueAsDecimal = (decimal)ConvertType.ChangeType(newValue, typeof(decimal)); var oldMaxValueAsDecimal = (decimal)ConvertType.ChangeType(oldMaxValue, typeof(decimal)); var oldMinValueAsDecimal = (decimal)ConvertType.ChangeType(oldMinValue, typeof(decimal)); var values = Enumerable.Range(0, 2).Select(i => { if (i == 0) { return(isMin && !object.Equals(oldMinValue, convertedNewValue) && newValueAsDecimal >= Min && newValueAsDecimal <= Max && newValueAsDecimal < oldMaxValueAsDecimal ? convertedNewValue : oldMinValue); } else { return(!isMin && !object.Equals(oldMaxValue, convertedNewValue) && newValueAsDecimal >= Min && newValueAsDecimal <= Max && newValueAsDecimal > oldMinValueAsDecimal ? convertedNewValue : oldMaxValue); } }).AsQueryable().Cast(type); if (!object.Equals(Value, values)) { Value = (TValue)values; await ValueChanged.InvokeAsync(Value); if (FieldIdentifier.FieldName != null) { EditContext?.NotifyFieldChanged(FieldIdentifier); } await Change.InvokeAsync(Value); StateHasChanged(); } } else { var valueAsDecimal = Value == null ? 0 : (decimal)ConvertType.ChangeType(Value, typeof(decimal)); if (!object.Equals(valueAsDecimal, newValue) && newValue >= Min && newValue <= Max) { Value = (TValue)ConvertType.ChangeType(newValue, typeof(TValue)); await ValueChanged.InvokeAsync(Value); if (FieldIdentifier.FieldName != null) { EditContext?.NotifyFieldChanged(FieldIdentifier); } await Change.InvokeAsync(Value); StateHasChanged(); } } }