默认情况下不进行验证。在您的情况下,它不是DataGridView
验证数据,而是验证基础类型DateTime
。
如果您真的想保留 datetime 类型的列,DateTime
您应该将所有输入数据转换为您选择的一种格式。您仍然可以通过在运行时转换为特定的文化来以不同的方式显示(在内部它们将保持默认文化)它们(尽管如果此数据不是只读的,则需要额外的代码和注意)
这是我的意思的代码片段 - 您将数据存储为DateTime
文化 A(由您Thread
自己定义)并将其显示为转换为特定文化 B 的字符串。
当用户尝试以任何格式输入日期时,它将被正确解析并保存在文化 B 中(但是用户将在特定文化 A 中看到它)。
这里的问题 - 如果客户在保存后以 B 以外的任何其他文化输入日期,它将在视觉上转换为 B。
这是 List 的属性,它填充DataGridView
private DateTime _dt1;
public string dt1 {
get
{
return _dt1.ToString(new CultureInfo("nl-NL"));
}
set
{
_dt1 = DateTime.Parse(value);
}
}
关于排序问题 - 实现自定义排序相对容易,它将比较不显示strings
但它们的底层DateTime
属性