質問: "yyyy/MM/dd HH:mm:ss"; } ```
回答: データソースの型をDateTime型とし、値をDateTime.MinValueとすると空白表示される。 そのCellのFormattedValueがすでに`string.Empty`となっている。 Frameworkのソースを読むと、FormattedValueを得るとき、`DateTime.ToString`ではなく`System.ComponentModel.DateTimeConverter`を使用してstring型に変換している。 この`System.ComponentModel.DateTimeConverter`を使用してDateTime.MinValueをstringに変換すると 確かに`string.Empty`となる。 ``` Console.WriteLine(TypeDescriptor.GetConverter(typeof(DateTime)).ConvertToString(DateTime.MinValue)); ``` DateTimeConverterにてMinValueの時は`string.Empty`を返すよう実装されていました。 compmod\system\componentmodel\DateTimeConverter.cs ``` public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string) && value is DateTime) { DateTime dt = (DateTime) value; if (dt == DateTime.MinValue) { return string.Empty; } 以下略 ``` ですので、質問者さんが挙げておられる回避策などでデフォルトの変換を行わないようにするしかないと思われます。 ちなみに、style.Formatを指定した場合は`Tostring(style.Format,style.FormatProvider)`で変換されるようです。