C# 在DataGridView中绑定日期和时间以分隔列

C# 在DataGridView中绑定日期和时间以分隔列,c#,winforms,datagridview,C#,Winforms,Datagridview,我将DGV绑定到属性包含DateTime值的对象列表。我想显示并允许在单独的列中编辑日期和时间组件。我该怎么做?以下是我该怎么做 在DataGridView中,使暴露日期时间的属性(一起)不可见 还有另外两个属性,Date和Time,并让这些属性实质上链接回您的DateTime属性 像这样: [Browsable(false)] public DateTime DateTime { get; set; } public DateTime Date { get { return this

我将DGV绑定到属性包含DateTime值的对象列表。我想显示并允许在单独的列中编辑日期和时间组件。我该怎么做?

以下是我该怎么做

DataGridView
中,使暴露
日期时间的属性(一起)不可见

还有另外两个属性,
Date
Time
,并让这些属性实质上链接回您的
DateTime
属性

像这样:

[Browsable(false)]
public DateTime DateTime { get; set; }

public DateTime Date
{
    get { return this.DateTime.Date; }
    set
    {
        TimeSpan time = this.Time;
        this.DateTime = value.Date + time;
    }
}

public TimeSpan Time
{
    get { return this.DateTime.TimeOfDay; }
    set
    {
        this.DateTime = this.Date + value;
    }
}

如果您建议我更改绑定对象,我不能直接这样做,因为它来自第三方API。Neely:嗯,如果你不能控制这个类,那么如果你想让
DataGridView
为你处理数据绑定(至少据我所知),恐怕包装类将是你唯一的选择。否则,我建议您只需手动插入您自己的两列,处理单元格更改事件,检查更改是否发生在这两列中的一列中,然后自己更新底层对象。也许有一种更优雅的方式,但我就是这么做的。