簡體   English   中英

Binded DataGrid中的新行顯示DatePicker為01/01/0001

[英]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中,已將DataGridItemsSource屬性設置或綁定為:

private DateTime _dateTime = DateTime.Now; //<-- default value
public DateTime DateTime
{
    get { return _dateTime; }
    set { _dateTime = value; }
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM