C# 在设置自定义DataGridViewColumn的属性时访问DataGridView控件

C# 在设置自定义DataGridViewColumn的属性时访问DataGridView控件,c#,winforms,datagridview,C#,Winforms,Datagridview,如何在自定义DataGridViewColumn的属性setter中找到DataGridView控件。我下面的代码返回null。我想获取自定义列的父级DataGridView public class CustomComboBoxColumn : DataGridViewComboBoxColumn { public string SomeProperty { get { return _SomeProperty; } set { _S

如何在自定义
DataGridViewColumn
的属性
setter
中找到
DataGridView
控件。我下面的代码返回null。我想获取自定义列的父级
DataGridView

public class CustomComboBoxColumn : DataGridViewComboBoxColumn
{
  public string SomeProperty
  {
    get { return _SomeProperty; }
    set
        {
          _SomeProperty = value;
          CustomDataGridView dgv = this.DataGridView;  //this one is returning null

        }
   }
}
(在WinForms中-从post标记判断)是的属性,而不是So的属性,因为您是从 DataGridViewColumn派生类,则必须使此属性从自定义列集合向下渗透到添加到其中的每个自定义列,或许可以通过实现column.collection自定义属性使集合本身在每个添加的列中都可访问,并在每次向集合添加列时初始化它。然后,您可以在CustomComboBoxColumn类中使用类似的内容:
CustomDataGridView dgv=this.CustomComboxColumnCollection.DataGridView
. 

另一方面,考虑在StutoCuMBOBXCube类中做您希望在包含它的集合中做的事情。在集合中,您可以访问

CustomComboBoxColumnCollection.DataGridView
属性,然后在向集合中添加新列时设置所需的结果

做您觉得更自然并且需要更少编码的事情:)

在WinForms中(从post标记判断)是的属性,而不是So的属性,因为您是从 DataGridViewColumn派生类,则必须使此属性从自定义列集合向下渗透到添加到其中的每个自定义列,或许可以通过实现column.collection自定义属性使集合本身在每个添加的列中都可访问,并在每次向集合添加列时初始化它。然后,您可以在CustomComboBoxColumn类中使用类似的内容:
CustomDataGridView dgv=this.CustomComboxColumnCollection.DataGridView
. 

另一方面,考虑在StutoCuMBOBXCube类中做您希望在包含它的集合中做的事情。在集合中,您可以访问

CustomComboBoxColumnCollection.DataGridView
属性,然后在向集合中添加新列时设置所需的结果


做您觉得更自然、需要更少编码的事情:)

您的Datagridview id是否称为“Datagridview”?这看起来像是您试图将dgv返回设置为一个类型,除非该类型是对象ID。因此,如果它是ID,那么它是否可能位于某种模板或面板中?我编辑了我的问题。错误是this.DataGridView;始终返回null。那么,有没有一种方法可以获取自定义列的父datagridview?该属性何时设置?该列是否已添加到DGV的
集合中?如果操作正确,该属性将返回它所属的DGV。顺便说一句,使用var dgv=this.DataGridView。您的Datagridview id是否称为“Datagridview”?这看起来像是您试图将dgv返回设置为一个类型,除非该类型是对象ID。因此,如果它是ID,那么它是否可能位于某种模板或面板中?我编辑了我的问题。错误是this.DataGridView;始终返回null。那么,有没有一种方法可以获取自定义列的父datagridview?该属性何时设置?该列是否已添加到DGV的
集合中?如果操作正确,该属性将返回它所属的DGV。顺便说一句,使用var dgv=this.DataGridView