C# 如何在更正绑定属性后立即更新文本框?
我已将文本框绑定到属性。如果用户在文本框中写入日期值,则应自动更正。f、 e:20.01.10->20.01.2010 更正在Property集合块中完成:C# 如何在更正绑定属性后立即更新文本框?,c#,wpf,data-binding,xaml,C#,Wpf,Data Binding,Xaml,我已将文本框绑定到属性。如果用户在文本框中写入日期值,则应自动更正。f、 e:20.01.10->20.01.2010 更正在Property集合块中完成: public String DateOfBirth { get { if (patient.DateOfBirth != DateTime.MinValue) return patient.DateOfBirth.ToString("dd.MM.yyyy"); else
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”)未设置到文本框。文本框仍然包含“20.01”
有人知道如何更新文本框吗?默认情况下,绑定模式应为双向
以下是文本框的XAML:
<TextBox Validation.ErrorTemplate="{StaticResource errorTemplate}" Style="{StaticResource NotEmptyTextBox}">
<Binding Path="OrderVM.Patient.DateOfBirth" ValidatesOnDataErrors="True" ValidatesOnExceptions="True" />
</TextBox>
这篇文章提供了答案: 编辑:对不起,我误解了这个问题,我的新答案如下 您将文本框绑定到患者的DateOfBirth属性,而不是ViewModel中的DateOfBirth属性:
<Binding Path="OrderVM.Patient.DateOfBirth" ...
试试看
Text=“{Binding Path=Name,UpdateSourceTrigger=PropertyChanged}”是的,这将为每次按键触发,应该对您有效。
<Binding Path="OrderVM.DateOfBirth" ...