DataGridView: Форматировать значения, не изменяя ограниченные данные?

StackOverflow https://stackoverflow.com/questions/3439600

Вопрос

Я искал через Интернет, но я не смог найти ответ.

У меня есть DataGridView с ограниченным обязанностям, который имеет список объектов пользовательского класса. Среди полей класса у меня есть строковое поле, которое я хочу показать, используя

Path.GetFileName();

Поскольку он содержит весь филипат и то, что я хочу, это показать только имя файла, но сохраняя FilePath (т. Е. Ограниченные данные Intact) в ограниченном объекте.

Есть ли способ сделать это (формат, шаблон, стили, ...)? Поскольку в любое время я изменяю поле значений ячейки, он меняет значение объекта (которое это логика).

Спасибо заранее

Это было полезно?

Решение

Использовать Datagridview.cellformatting. Мероприятие на DataGridView. Это даст вам Datagridviewcellformattingeventargs. Объект с информацией о текущей ячейке, включая строку и столбец и неформатированное значение. Вы обновляете свойство VALUE к форматушевленному значению и установите formattingapplied to 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;
    }
}

Другие советы

То Binding класс имеет А. Format() а также Parse() Обработчик событий, где вы можете определить, как данные будут отформатированы в обоих направлениях.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top