ListView显示日期字段为空

问题描述:

你好,我有一个列表视图与几个字段之一是一个名为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如果你们任何一个人都能帮忙,我会非常感激。

您是否尝试过在不同的属性中指定格式,例如

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

我认为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"); 
}