Я сделал привязку из TextBox к свойству.Если пользователь записывает значение даты в TextBox, оно должно быть автоматически исправлено.например: 20.01.10 -> 20.01.2010
Исправление выполняется в блоке установки Propertys:
public String DateOfBirth
{
get
{
if (patient.DateOfBirth != DateTime.MinValue)
return patient.DateOfBirth.ToString("dd.MM.yyyy");
else
return patient.BirthdayString;
}
set
{
string dateParsed = ValidateDatePart(value, false, true);
DateTime date = new DateTime();
DateTime.TryParse(dateParsed, out date);
patient.DateOfBirth = date;
patient.BirthdayString = dateParsed;
base.OnPropertyChanged("DateOfBirth");
}
}
patient.DateOfBirth
и patient.BirthdayString
- значения в модели данных моегоприложение.Возвращение дня рождения в виде строки необходимо, потому что пользователь должен иметь возможность вводить части дня рождения, например, если день рождения не полностью известен, например «12 .1967».Моя проблема заключается в том, что, если пользователь вводит дату, например «20. 01.10», эта дата исправляется в свойстве, но для исправленной даты («20. 01.2010») не устанавливается значение TextBox.TextBox содержит еще 20,01.У кого-нибудь есть идея, как можно обновить TextBox?Режим привязки по умолчанию должен быть TwoWay.
Вот XAML для TextBox:
<TextBox Validation.ErrorTemplate="{StaticResource errorTemplate}" Style="{StaticResource NotEmptyTextBox}">
<Binding Path="OrderVM.Patient.DateOfBirth" ValidatesOnDataErrors="True" ValidatesOnExceptions="True" />
</TextBox>