Как редактировать значение ячейки при привязке данных к сетке данных? - PullRequest
1 голос
/ 23 марта 2011

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

Я хочу показать список типа B в ячейке.Я хочу сделать это с помощью свойства Description объекта B. Описания (объекта B), показанные в представлении данных, разделены запятой.

К какому событию я должен подключиться, чтобы отредактировать значение ячейки?Я не хочу добавлять свойство к моему объекту, потому что тогда я собираюсь изменить свой объект для представления пользовательского интерфейса, а это мне не нужно.

1 Ответ

1 голос
/ 23 марта 2011

Наконец я что-то нашел. Я не знаю, правильно ли это, но сейчас это работает для меня. Вот что я сделал:

1) Я установил для свойства VirtualMode значение true для таблицы данных. 2) Я обработал событие CellValueNeeded. В этом обработчике событий я проверяю индекс столбца и устанавливаю значение:

private void myDataGridView_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
{
    if (e.ColumnIndex == 3)
    {
        // _appointments is a member variable which is the datasource of the grid
        Appointment appointment = _appointments[e.RowIndex];

        IList<DisciplineType> disciplines = appointment.GetDisciplines();

        for (int i = 0; i < disciplines.Count; i++)
        {
            if (i > 0)
                e.Value += ", " + disciplines[i].Description;
            else
                e.Value += disciplines[i].Description;
        }
    }
}

Надеюсь, это поможет кому-то еще. Или, если у вас есть лучшее решение, пожалуйста, дайте мне знать.

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