2012-11-23 103 views
0

你好,我有一個列表視圖與幾個字段之一是一個名爲DatumNabavke的日期字段。ListView顯示日期字段爲空

public DateTime? DatumNabavke 
    { 
     get { return _datumNabavke; } 
     set { _datumNabavke = value; OnPropertyChanged("DatumNabavke"); } 

    } 

正如你所看到的,它是一個可以爲空的日期字段。問題是,雖然它可以爲空,當它是,它會自動DateTimeNow

if (adress.DatumNabavke == null) 
       { 
        oleComd.Parameters[":datumnabavke"].Value = DateTime.Now; 
       } 

保存,所以當我創建一個新的行和離開DatumNabavke字段爲空,它應該顯示爲今天的我的ListView日期與GridView

<GridViewColumn Header="Datum Nabavke" DisplayMemberBinding="{Binding DatumNabavke, StringFormat= d}" /> 

但由於某種原因,這不會發生。我已經顯示的每一行,名稱,ID,值,都顯示爲應該是,但由於某種原因日期只是空白。

另一件事,在我的調試輸出我得到以下錯誤:

System.Windows.Data錯誤:11:返回值 'X:靜態SYS:DateTime.Now'(類型 '字符串')不能轉換爲在'SelectedDate'中使用(類型'Nullable 1'). BindingExpression:Path=Adress.DatumZaduzenja; DataItem=null; target element is 'DatePicker' (Name='datumZaduzenja'); target property is 'SelectedDate' (type 'Nullable 1')FormatException:'System.FormatException:x:靜態sys:DateTime.Now不是DateTime的有效值。 ---> System.FormatException:該字符串未被識別爲有效的DateTime。有一個未知的單詞從索引0開始。 at System.DateTimeParse.Parse(String s,DateTimeFormatInfo dtfi,DateTimeStyles styles) at System.ComponentModel.DateTimeConverter.ConvertFrom(ITypeDescriptorContext context,CultureInfo culture,Object value) ---內部異常堆棧跟蹤結尾--- at System.ComponentModel.DateTimeConverter.ConvertFrom(ITypeDescriptorContext context,CultureInfo culture,Object value) at System.ComponentModel.NullableConverter.ConvertFrom(ITypeDescriptorContext context,CultureInfo culture,Object value) at System .Windows.Data.BindingExpressionBase.ConvertValue(Object value,DependencyProperty dp,Exception & e)'

I如果你們任何一個人都能幫忙,我會非常感激。

回答

1

您是否嘗試過在不同的屬性中指定格式,例如

<GridViewColumn Header="Datum Nabavke" DisplayMemberBinding="{Binding DatumNabavke}" StringFormat="{}{0:dd/MM/yyyy}" /> 
1

我認爲DatumNabavke是在視圖模型的屬性,而該視圖模型的集合已經成功地綁定到您的ListView.ItemsSource。 您是否嘗試過:

public DateTime? DatumNabavke 
{ 
    get { 
     if(_datumNabavke == null) 
      return DateTime.Now; 

     return _datumNabavke; 
    } 
    set { _datumNabavke = value; OnPropertyChanged("DatumNabavke"); } 

} 

你沒有指定調用的代碼

如果(adress.DatumNabavke == NULL){ oleComd.Parameters [ 「:datumnabavke」。值= DateTime.Now; }

如果在將ViewModel集合作爲ItemSource加載後出現這種情況,綁定將永遠不會工作,因爲這段代碼不會引發屬性通知。 你也可以試試這個:

if (adress.DatumNabavke == null) 
{ 
    oleComd.Parameters[":datumnabavke"].Value = DateTime.Now; 
    OnPropertyChanged("DatumNabavke"); 
}