Как мне обработать редактирование пользовательских типов в C # dagagview? - PullRequest
2 голосов
/ 20 марта 2010

У меня есть представление данных, в котором один столбец содержит пользовательский класс, который я установил с помощью:

dgvPeriods.Columns[1].ValueType = typeof(ExDateTime);

Он настроен для правильного отображения путем обработки события CellFormatting, но я не уверен, какое событие обработать для редактирования ячейки. При отсутствии каких-либо действий я получаю исключение FormatException, поскольку сетка данных пытается преобразовать String в ExDateTime, когда я пытаюсь переместить фокус из отредактированной ячейки. Я попытался добавить преобразование типов в свой пользовательский класс ExDateTime:

public static implicit operator ExDateTime(string b)
{
    return new ExDateTime(b);
} 

Но это не сработало. Я также пытался обработать событие DataError, но, похоже, оно срабатывает слишком поздно. Сетка данных не привязана к данным.

Ответы [ 2 ]

0 голосов
/ 20 марта 2010

Оказывается, мне нужно обработать событие CellParsing:

e.Value = new ExDateTime(e.Value.ToString());
e.ParsingApplied = true;
0 голосов
/ 20 марта 2010

попробуйте обработать событие CellValidating сетки

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