我正在處理文本框所需的TimeSpan值。輸入內容需要被驗證,並且可能有幾種不同的格式(前1300表示13:00)。我做了一些工作來檢查並將其轉換爲viewmodel。但之後,我如何刷新文本框中的文本?如何使用NotificationObject刷新silverlight mvvm中的綁定數據
<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
繼承I輸入1300在之後的字符串屬性文本框,OpenHourFrom被更新。但文本框的文本不會更改爲13:00。爲什麼?請幫助,許多thx。
對不起,我錯誤地粘貼了代碼,它是我的源代碼中的OpenHourFromText。但它不適合我。 – aiyagaze
@aiyagaze如果您在綁定中設置了「UpdateSourceTrigger = PropertyChanged」,它會工作嗎?默認值爲「LostFocus」,這意味着它只會在焦點丟失時更新源 – Rachel