在DataGrid
我有一栏:
<DataGridTextColumn Header="Freeze First Day" Binding="{Binding FirstDay, StringFormat=\{0:d\}}"/>
我希望能够将字段从填充更改为空白。 (FirstDay的类型为DateTime
。)但是,当我离开编辑“无法转换”值时,我收到错误。我已经尝试了很多方法来解决这个问题,但我没有看到找到有效的方法。
答案 0 :(得分:0)
考虑检查绑定属性是否为可为空的DateTime。
private DateTime? firstDay;
public DateTime? FirstDay
{
get
{
return firstDay;
}
set
{
firstDay=value;
}
}
答案 1 :(得分:0)
现在,我想 - 我为你的问题扎根了 这是因为您设置的StringFormat而发生的。每当您删除内容时,该值将变为null。 StringFormat无法处理NULL值,因此会抛出异常。
作为一种解决方法,您可以使用Converter,在那里您可以使用ToString()方法转换对象,如果不是NULL则返回
//IN THE CONVERTER - YOU CAN RETURN AS,
{
return (value!=null?value.ToString("{0:d}"):value);
}