Мне нужно определить некоторые пользовательские операторы в ячейках DataGridView и попытаться следовать перспективе ООП.
Я получил новый класс из стандарта DataGridViewTextBoxCell (ради этого назовите его DataGridViewTextBoxCell_1)этого вопроса) следующим образом
class DataGridViewTextBoxCell_1:DataGridViewTextBoxCell
{
public static bool operator >=(DataGridViewTextBoxCell_1 a, DataGridViewTextBoxCell_1 b)
{ // do something }
}
Таким образом > = - это новый оператор, определенный в ячейках текстового поля.Теперь, когда я создаю элемент управления datagridview с именем Datagrid_1 и добавляю новые ячейки с шаблоном ячейки, установите нас DataGridViewTextBoxCell_1 , а именно
this.Datagrid_1.Columns[this.Datagrid_1.Columns.Count - 1].CellTemplate = new DataGridViewTextBoxCell_1();
, я не могу использовать определенный выше оператор> = в ячейках DataGrid_1, хотя их шаблон поддерживает операторы (я получаю сообщение об ошибке, что Operator> = нельзя применить к операндам типа 'DataGridViewCell').
Я предполагаючто я могу использовать приведение , но для широкого использования, которое может быть неэффективным.
С другой стороны, я не уверен, как расширить класс DataGridViewCell (к которому относится ошибка) и заставить DataGridView Control использовать этот новый расширенный класс Cell, поскольку связь между классами DataGridViewCell и DataGridView не совсем ясна.
Буду признателен за любые предложения по этому вопросу.