[英]New row in Binded DataGrid shows DatePicker as 01/01/0001
想知道您是否可以幫助我。 我有一個DataGrid,用戶將在其中添加新行。 我有一個DatePicker,它綁定到ViewModel中的ObersableCollection集合。
當我通過雙擊最后一行創建新行時,DatePicker默認為01/01/0001。
我試過使用此處定義的轉換器:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
DateTime dateValue = (DateTime)value;
return dateValue.ToShortDateString() == "01/01/0001" ? DateTime.Now : value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value;
}
然后我將此轉換器添加到綁定中。 這將UI顯示為DateTime.Now,如預期的那樣,但是當它進入ObservableCollection時,DateTime值仍為01/01/0001。 因此,當我將更改保存到數據庫時,將DateTime2轉換為DateTime時遇到錯誤。
有什么簡單的方法可以解決此問題嗎? 如果無法解決此問題,我很想沒有內聯添加功能,但我寧願避免走那條路線。
設置數據對象類的DateTime
屬性的默認值,即在ObservableCollection<T>
的類T
中,已將DataGrid
的ItemsSource
屬性設置或綁定為:
private DateTime _dateTime = DateTime.Now; //<-- default value
public DateTime DateTime
{
get { return _dateTime; }
set { _dateTime = value; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.