回答編集履歴
2
追記
answer
CHANGED
@@ -21,4 +21,6 @@
|
|
21
21
|
以下略
|
22
22
|
```
|
23
23
|
|
24
|
-
ですので、質問者さんが挙げておられる回避策などでデフォルトの変換を行わないようにするしかないと思われます。
|
24
|
+
ですので、質問者さんが挙げておられる回避策などでデフォルトの変換を行わないようにするしかないと思われます。
|
25
|
+
|
26
|
+
ちなみに、style.Formatを指定した場合は`Tostring(style.Format,style.FormatProvider)`で変換されるようです。
|
1
追記修正
answer
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
Frameworkのソースを読んでいる途中ですが、現在分かったことをまとめておきます。
|
2
|
-
|
3
1
|
データソースの型をDateTime型とし、値をDateTime.MinValueとすると空白表示される。
|
4
2
|
そのCellのFormattedValueがすでに`string.Empty`となっている。
|
5
3
|
|
@@ -9,4 +7,18 @@
|
|
9
7
|
```C#
|
10
8
|
Console.WriteLine(TypeDescriptor.GetConverter(typeof(DateTime)).ConvertToString(DateTime.MinValue));
|
11
9
|
```
|
12
|
-
DateTimeConverterにてMinValue
|
10
|
+
DateTimeConverterにてMinValueの時は`string.Empty`を返すよう実装されていました。
|
11
|
+
|
12
|
+
compmod\system\componentmodel\DateTimeConverter.cs
|
13
|
+
```C#
|
14
|
+
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) {
|
15
|
+
if (destinationType == typeof(string) && value is DateTime) {
|
16
|
+
DateTime dt = (DateTime) value;
|
17
|
+
if (dt == DateTime.MinValue) {
|
18
|
+
return string.Empty;
|
19
|
+
}
|
20
|
+
|
21
|
+
以下略
|
22
|
+
```
|
23
|
+
|
24
|
+
ですので、質問者さんが挙げておられる回避策などでデフォルトの変換を行わないようにするしかないと思われます。
|