我一直在网上搜索,但未能找到答案。

我有一个带有 BindingSource 边界的 DataGridView,它有一个自定义类的对象列表。在类的字段中,我有一个字符串字段,我想使用它来显示

Path.GetFileName();

因为它包含整个文件路径,而我想要的是仅显示文件名,但在有界对象中保留文件路径(即,有界数据完整)。

有什么方法可以做到这一点(格式、模板、样式...)?因为每当我更改单元格的值字段时,它都会更改对象的值(这是逻辑)。

提前谢谢了

有帮助吗?

解决方案

使用 DataGridView.CellFormatting 事件上的DataGridView。这会给你一个 DataGridViewCellFormattingEventArgs 对象与信息有关当前单元格,其中包括行和列的和未格式化的值。您更新Value属性的格式化值和设定FormattingApplied为真,并在DataGridView会令该值。

像这样:

private void dataGridView1_CellFormatting(object sender, 
    DataGridViewCellFormattingEventArgs e)
{
    if (e.ColumnIndex == 0) // Check for the column you want
    {
        e.Value = Path.GetFileName(e.Value.ToString());
        e.FormattingApplied = true;
    }
}

其他提示

Binding 类有一个 Format()Parse() 事件处理程序,您可以在其中定义如何以两种方式格式化数据。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top