我已经从TextBox绑定到属性。如果用户在文本框中写入日期值,它应该自动更正。 f.e:10年1月20日 - > 2010年1月20日如何在更正绑定属性后立即更新TextBox?
校正在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
都在我的应用程序的数据模型值。因为用户应该能够输入生日的部分f.e.,所以需要将字符串作为字符串返回。如果生日不像“12。1967”那样完全知道。 我的问题是,如果用户输入一个像'20 .01.10'这样的日期,这个日期在属性中被纠正了,但是校正日期('20 .01.2010')没有被设置到文本框中。 TextBox仍然包含'20 .01'。 有没有人有一个想法,如何更新文本框?绑定模式默认为TwoWay。
下面是对TextBox的XAML:
<TextBox Validation.ErrorTemplate="{StaticResource errorTemplate}" Style="{StaticResource NotEmptyTextBox}">
<Binding Path="OrderVM.Patient.DateOfBirth" ValidatesOnDataErrors="True" ValidatesOnExceptions="True" />
</TextBox>
是的,这将触发每个按键,应该为你工作。 – Kelly 2010-08-11 23:41:00