我正在处理文本框所需的 TimeSpan 值。输入内容需要经过验证,并且可能采用多种不同的格式(例如 1300 表示 13:00)。我做了一些工作来检查并在视图模型中转换它。但在那之后我如何刷新文本框中的文本?
<TextBox Text="{Binding Path= OpenHourFromText, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnExceptions=True}" ></TextBox>
OpenHourFromValue 是我用于验证和数据绑定的字符串属性
public class MainPageViewModel : NotificationObject{
public string OpenHourFromText
{
get
{
//OpenHourFrom is a TimeSpan property that contain the value
if (OpenHourFrom != null)
{
return GetOpeningHourText(OpenHourFrom); //fomat the time
}
else
{
return "";
}
}
set
{
//do validation and convert here. 1300 will be changed to 13:00 TimeSpan type
OpenHourFrom = ConvertToTimeSpan(value);
RaisePropertyChanged("OpenHourFromText");
}
}
public TimeSpan OpenHourFrom { get; set; }
}
视图模型继承自 Microsoft.Practices.Prism.ViewModel.NotificationObject
在文本框中输入 1300 后,OpenHourFrom 会更新。但是文本框的文本没有更改为 13:00。为什么?请帮忙,谢谢。