объединение двух столбцов таблицы данных в один новый столбец - PullRequest
3 голосов
/ 15 декабря 2009

Я хочу объединить два столбца таблицы данных в один новый столбец.

Сначала я изменяю свойство Visible двух столбцов на false, затем я пытаюсь добавить новый столбец col, значение которого должно быть отформатировано так, что col1Value и col2Value - это значение вышеприведенных столбцов:

string.Format("{0} per {1}", col1Value, col2Value);

мой код

reportResultForm.dgvResult.Columns["Height"].Visible = false;
reportResultForm.dgvResult.Columns["Width"].Visible = false;
DataGridViewColumn col = new DataGridViewColumn();
col.DefaultCellStyle.Format = "{0} per {1}";
col.CellTemplate = new DataGridViewTextBoxCell();
dgvResult.Columns.Add(col);

но я не знаю, как это сделать! Помогите мне, пожалуйста. мой путь верен?

1 Ответ

4 голосов
/ 21 декабря 2009

Вы можете сделать свою собственную реализацию DataGridViewTextBoxCell и переопределить для нее метод GetFormattedValue. Там вы можете вернуть отформатированное значение для вашего столбца ниже, например:

// use custom DataGridViewTextBoxCell as columns's template
col.CellTemplate = new MyDataGridViewTextBoxCell();

...

// custom DataGridViewTextBoxCell implementation 
public class MyDataGridViewTextBoxCell : DataGridViewTextBoxCell
{
    protected override Object GetFormattedValue(Object value,
        int rowIndex,
        ref DataGridViewCellStyle cellStyle,
        TypeConverter valueTypeConverter,
        TypeConverter formattedValueTypeConverter,
        DataGridViewDataErrorContexts context)
    {
        return String.Format("{0} per {1}",
            this.DataGridView.Rows[rowIndex].Cells[0].Value,
            this.DataGridView.Rows[rowIndex].Cells[1].Value);
    }
}

надеюсь, это поможет, с уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...