我正在处理Windows窗体应用程序并在窗体上有一个网格视图。表单设计器代码正在初始化网格,该网格具有名为" ReadOnlyColumns"的属性。该属性是在数据网格视图上的公共类中定义的对象列表。
代码将编译,但是当我尝试加载表单时," ReadOnlyColumns"已被设计师设为null。我有其他列表属性正确设置。 DataGridView将属性正确设置为新列表,但主机表单上的设计器代码将其初始化为NULL。这会导致问题,虽然我可以编码null,但这是不对的。表单将字符串列表正确初始化为具有零对象的列表。为什么不能初始化自定义对象列表。
下面是适用于通用List的代码,以及为自定义列表返回null的代码。
下面返回一个零对象的列表 - 正确。
this.dgvIndex.ColumnsToLower = ((System.Collections.Generic.List<string>)(resources.GetObject("dgvIndex.ColumnsToLower")));
下面返回一个null的列表 - 不正确的
this.dgvIndex.ReadOnlyColumns = ((System.Collections.Generic.List<ControlFactory.DataGridViewControlColumnProperties>)(resources.GetObject("dgvIndex.ReadOnlyColumns")));
dgvIndex.ReadOnlyColumns是数据网格上的公共属性,这是运行此代码时的新列表,即使在调试器中也可以看到dgvIndex.ReadOnlyColumns是空列表,而不是null。
当然我没有写设计师代码,但肯定会引起问题。
思想?