Код: Выделить всё
using System.Windows.Controls;
namespace MyTest.validations
{
public class DecimalValidationRule : ValidationRule
{
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
decimal valueParsed;
string? valueString = value.ToString();
if (decimal.TryParse(valueString, out valueParsed))
{
return new ValidationResult(true, null);
}
return new ValidationResult(false, "Inserisci un valore Decimale corretto");
}
}
}
Почему? Как я могу правильно проверить, является ли значение десятичным?
РЕДАКТИРОВАТЬ: используя предложение @Panagiotis Kanavos, у меня проблема с написанием 1,0 (например), которые становятся 10 , а не 1,0.
Вот мой класс ViewModelData:
Код: Выделить всё
using System.ComponentModel;
namespace MyTest.models
{
public class ViewModelData : INotifyPropertyChanged
{
private decimal? valoreDecimal;
public decimal? ValoreDecimal
{
get { return valoreDecimal; }
set
{
valoreDecimal = value + 0.0m;
OnPropertyChanged(nameof(ValoreDecimal));
}
}
public event PropertyChangedEventHandler? PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Код: Выделить всё
Подробнее здесь: https://stackoverflow.com/questions/783 ... uestring-o