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