Почему в функции ValidationRule Validate функция decimal.TryParse(valueString, out valueParsed) возвращает true, давая 1C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему в функции ValidationRule Validate функция decimal.TryParse(valueString, out valueParsed) возвращает true, давая 1

Сообщение Anonymous »

Вот мой код:

Код: Выделить всё

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");
}
}
}
если значение объекта (заполнено текстовым полем WPF) равно 1.0.1 (проверено отладчиком), функция TryParse вернуть true (не десятичное число).
Почему? Как я могу правильно проверить, является ли значение десятичным?
РЕДАКТИРОВАТЬ: используя предложение @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));
}
}
}
А это XAML: После написания 1,0 теперь становится 10. Почему?

Подробнее здесь: https://stackoverflow.com/questions/783 ... uestring-o
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Decimal.TryParse в С# не возвращает десятичное число
    Anonymous » » в форуме C#
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Как мне заставить Json parse_float=decimal.Decimal округлить число до двух десятичных знаков?
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Pandas - Decimal.invalidoperation: [] во время read_sql
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Pandas - Decimal.invalidoperation: [] во время read_sql
    Anonymous » » в форуме Python
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Pandas - Decimal.invalidoperation: [] во время read_sql
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»