c# - 将 TimeSpan 绑定(bind)到 DataGridView 列

标签 c# .net winforms datagridview timespan

有没有一种简单的方法可以在 DataGridViewDataGridViewTextBoxColumn 中显示表示 TimeSpan 字段的格式化字符串?

我有一组自定义对象(由 Web 服务返回),我将其绑定(bind)到我的数据网格。这些对象有一个 TimeSpan 属性。当我将此属性绑定(bind)到数据网格的列时,我获取对象名称(类似于 MyApplication.MyClass.TimeSpan ),而不是时间跨度字符串。

如何解决?

注意: 最后我发现我的问题是我从网络服务获取对象数组。 看来 TimeSpan 类型无法进行 xml 序列化,因此系统类重新分类为自定义对象:

最佳答案

在对象中创建一个只读字符串属性,该属性将表示格式化的 TimeSpan。像这样的东西:

public class MyObject
{
private TimeSpan _myTimeSpan;

// ...

public string TimeSpanFormatted
{
    get
    {
         return _myTimeSpan.ToString("c");
    }
}

// ...
}

然后为此属性添加一列并隐藏“原始”TimeSpan 列。

参见here for TimeSpan formatting info .

注意:对于列的属性,请务必将 DataMember 设置为 TimeSpanFormatted

关于c# - 将 TimeSpan 绑定(bind)到 DataGridView 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9332723/

相关文章:

c# - 安装 .NET 4.5 后的 ClaimsIdentity NullReferenceException

c# - 正则表达式匹配不匹配的内容

c# - 有什么方法可以覆盖操作方法的属性而不必覆盖整个方法?

c# - WCF 服务异常 :The formatter threw an exception while trying to deserialize the message

asp.net - 如何在 Visual Studio 2017 中重命名发布配置文件?

c# - 日本字符显示?符号

c# - 有效 "Override"Control.Enabled

c# - 使 DataGridView 与 DataView 保持同步

C# - 如何使用线程实现图像预加载缓存

c# - 拆分文件名