DataGridView:格式化值而不实际更改有界数据?

时间:2010-08-09 11:40:02

标签: c# datagridview format databound datagridviewcellstyle

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

我有一个带有BindingSource的DataGridView,它有一个自定义类的对象列表。在这个类的字段中,我有一个字符串字段,我想用

显示
Path.GetFileName();

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

有没有办法做到这一点(格式,模板,样式......)?因为只要我改变Cell的Value字段,它就会改变对象的值(它是逻辑的)。

非常感谢提前

2 个答案:

答案 0 :(得分:5)

在DataGridView上使用DataGridView.CellFormatting事件。这将为您提供一个DataGridViewCellFormattingEventArgs对象,其中包含有关当前单元格的信息,包括行和列以及未格式化的值。您将Value属性更新为格式化的值并将FormattingApplied设置为true,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;
    }
}

答案 1 :(得分:0)

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