- PR -

DataGridに表示するDateTime型

1
投稿者投稿内容
toppo
ベテラン
会議室デビュー日: 2003/10/28
投稿数: 89
お住まい・勤務地: 東京・池袋
投稿日時: 2004-10-27 17:06
toppoです。

DataGridにDateTime型の内容を表示する際に、DateTime型の初期表示
に困っています。

DataGridにArrayListをバインドしています。
ArrayListの要素は、Hogeクラスが格納されています。
HogeというクラスにはStartDateTimeというプロパティがあり、
型は、DateTimeです。

DateTimeはstractなので、かならず"0001/01/01"とう値が
表示されてしまいます。

空白を表示する事は可能でしょうか?


Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-10-27 22:03
引用:

toppoさんの書き込み (2004-10-27 17:06) より:

DataGridにDateTime型の内容を表示する際に、DateTime型の初期表示
に困っています。

DateTimeはstractなので、かならず"0001/01/01"とう値が
表示されてしまいます。

空白を表示する事は可能でしょうか?


 DateTimeを内包する、DateTimeExを作って、ToStringメソッドあたりをオーバーライドすれば?

直打ち未検証
class DateTimeEx {
private DateTime dateTimeValue;
private bool isNull;
public DateTimeEx() {
isNull = true;
}
public object Value {
get {
return (isNull ? null : dateTimeValue);
}
set {
if (value == null) {
isNull = true;
} else {
if ((value as DateTime) != null) {
isNull = false;
dateTimeValue = value;
} else {
throw new ArgumentException();
}
}
}
}
public override string ToString() {
if (isNull) {
return "";
} else {
return dateTimeValue.ToString();
}
}
}
_________________
toppo
ベテラン
会議室デビュー日: 2003/10/28
投稿数: 89
お住まい・勤務地: 東京・池袋
投稿日時: 2004-10-28 13:21
toopです。

ありがとうございました。
DateTimeをラップする事で、表示はうまくいきました。
DataGridに対する入力がHogeクラスのフィールドに
うまくセットされませんが、多分、バインドしているプロパティ
のsetの内容を DateTimeExのValueとうまく親和するように
すれば、大丈夫な気がします。(今の所うまくいっていません。)
もう少し頑張ってみます。

それでは。
1

スキルアップ/キャリアアップ(JOB@IT)