1

DataGrid我有一个专栏:

<DataGridTextColumn Header="Freeze First Day" Binding="{Binding FirstDay, StringFormat=\{0:d\}}"/>

我希望能够允许将字段从填充更改为空白。(FirstDay 的类型是DateTime。)但是,当我离开编辑“无法转换值”时,我得到了一个错误。我已经尝试了多种方法来解决这个问题,但我没有看到找到可行的方法。

4

2 回答 2

0

考虑检查绑定属性是否为可为空的 DateTime 类型。

private DateTime? firstDay;
public DateTime? FirstDay
{
get
{ 
   return firstDay;
}
set
{
   firstDay=value;
}
}
于 2013-07-23T17:43:25.953 回答
0

现在,我认为 - 我为您的问题找到了根源 这是因为您设置了 StringFormat 。每当您删除内容时,该值都会变为空。StringFormat 无法处理 NULL 值,因此会引发异常。

作为一种解决方法,您可以利用 Converter 并在那里您可以使用 ToString() 方法转换对象,如果不是 NULL 则返回

//IN THE CONVERTER - YOU CAN RETURN AS,
{
     return (value!=null?value.ToString("{0:d}"):value);
} 
于 2013-07-23T18:01:04.653 回答