【发布时间】:2017-02-10 22:41:53
【问题描述】:
我已经将一个文本框绑定到一个属性。如果用户将日期值写入文本框,则应自动更正。例如:20.01.10 -> 20.01.2010
在属性设置块中进行更正:
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”)未设置为文本框。文本框仍包含“20.01”。
有人知道如何更新 TextBox 吗?绑定模式默认为 TwoWay。
这是 TextBox 的 XAML:
<TextBox Validation.ErrorTemplate="{StaticResource errorTemplate}" Style="{StaticResource NotEmptyTextBox}">
<Binding Path="OrderVM.Patient.DateOfBirth" ValidatesOnDataErrors="True" ValidatesOnExceptions="True" />
</TextBox>
【问题讨论】:
标签: c# wpf data-binding xaml