我已经将文本框绑定(bind)到属性。如果用户将日期值写入文本框,则应自动更正。例如:2010年1月20日 -> 2010年1月20日
更正是在属性设置 block 中完成的:
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");
}
}
patent.DateOfBirth
和 patent.BirthdayString
是我的应用程序数据模型中的值。需要将生日作为字符串返回,因为用户应该能够输入生日的部分内容,例如如果生日不完全已知,例如“12.1967”。
我的问题是,如果用户输入像“20.01.10”这样的日期,则会在属性中更正该日期,但更正后的日期(“20.01.2010”)不会设置到文本框。文本框仍包含“20.01”。
有人知道如何更新文本框吗?绑定(bind)模式默认为TwoWay。
这是文本框的 XAML:
<TextBox Validation.ErrorTemplate="{StaticResource errorTemplate}" Style="{StaticResource NotEmptyTextBox}">
<Binding Path="OrderVM.Patient.DateOfBirth" ValidatesOnDataErrors="True" ValidatesOnExceptions="True" />
</TextBox>
最佳答案
尝试一下
Text="{绑定(bind)路径=名称,UpdateSourceTrigger=PropertyChanged}"
关于c# - 如何在修正绑定(bind)属性后立即更新TextBox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3456641/