在DataGridViewCell

时间:2018-11-26 19:59:58

标签: c# oop datagridview

我需要在DataGridView单元上定义一些自定义运算符,并尝试遵循OOP的观点。

我从标准 DataGridViewTextBoxCell (为这个问题起名为DataGridViewTextBoxCell_1)派生了一个新类,如下所示

class DataGridViewTextBoxCell_1:DataGridViewTextBoxCell
{
  public static bool operator >=(DataGridViewTextBoxCell_1 a, DataGridViewTextBoxCell_1 b)
    { // do something }
}

因此> = 是在文本框单元格上定义的新运算符。 现在,当我创建一个名为 Datagrid_1 的datagridview控件并添加带有单元格模板的新单元格时,请设置我们 DataGridViewTextBoxCell_1 ,即

 this.Datagrid_1.Columns[this.Datagrid_1.Columns.Count - 1].CellTemplate = new DataGridViewTextBoxCell_1();

我不能在DataGrid_1的单元格上使用上面定义的运算符> = ,尽管它们的模板支持操作符(我收到一个错误消息,即运算符> =不能应用于类型为'DataGridViewCell的操作数')。

我认为我可以使用 casting ,但是如果广泛使用可能会效率低下。

另一方面,我不确定如何扩展DataGridViewCell类(错误所指向的位置)并使DataGridView控件使用该新的扩展Cell类,因为DataGridViewCell和DataGridView类之间的关系不是完全清楚。

我对此事有任何建议。

0 个答案:

没有答案