Ваша проблема - привязка десятичного числа к строковому свойству.string.empty не может быть преобразован в десятичное число, поэтому привязка не выполняется и свойство не обновляется.Поскольку свойство не изменяется, конвертер не запускается, и объект по-прежнему имеет старое значение.
Я считаю, что лучше всего переносить числа, даты и т. Д. В свойствах строки:
private string femaleCT;
public string FemaleCT
{
get
{
return this.femaleCT;
}
set
{
this.femaleCT = value;
decimal temp;
if (decimal.TryParse(value, out temp))
{
this.model.FemaleCT = temp;
}
this.NotifyPropertyChanged();
}
}
, а затем запишите преобразователь для получения строки, и он может решить, что делать, если строка пуста или иным образом не является допустимым значением.
Этот метод также позволяет проверять значение строки.Проверка модели недостаточна, поскольку она обновляется только в том случае, если значение является допустимым числом.