【发布时间】:2011-02-23 10:12:01
【问题描述】:
我有以下代码
public class SpecialItemRow : DataRow
{
public SpecialItemRow(DataRowBuilder builder)
: base(builder)
{
CreatedDate = DateTime.Now.ToLongTimeString();
}
public string ItemName { get { return Convert.ToString(base["_ItemName"]); } set { base["_ItemName"] = value; _UpdateModifiedDate(); } }
public string Price { get { return Convert.ToString(base["_Price"]); } set { base["_Price"] = value; _UpdateModifiedDate(); } }
public string CreatedDate { get { return Convert.ToString(base["_CreatedDate"]); } set { base["_CreatedDate"] = value; _UpdateModifiedDate(); } }
public string ModifiedDate { get { return Convert.ToString(base["_ModifiedDate"]); } set { base["_ModifiedDate"] = value; } }
private void _UpdateModifiedDate()
{
ModifiedDate = DateTime.Now.ToLongTimeString();
}
}
它尝试自动设置修改和创建的日期。但事实证明,这些不是放置的正确位置。是否有任何其他可覆盖的方法来设置这些值?谢谢。
【问题讨论】:
-
您如何实际创建这种类型的实例,因为您无法真正获得 DataRowBuilder 的实例 - 没有公共构造函数 - ? (或者我可能遗漏了什么)。
-
@tzup 当您有一个相应的类型化 DataTable 时调用此构造函数,其 NewRowFromBuilder() 被覆盖以创建此类型化 DataRow。