Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# GetObject(xxx)返回Null而不是空列表_C#_.net_Winforms - Fatal编程技术网

C# GetObject(xxx)返回Null而不是空列表

C# GetObject(xxx)返回Null而不是空列表,c#,.net,winforms,C#,.net,Winforms,我正在使用windows窗体应用程序,在窗体上有一个网格视图。表单设计器代码正在初始化具有名为“ReadOnlyColumns”属性的网格。属性是在数据网格视图的公共类中定义的对象列表 代码将被编译,但当我尝试加载表单时,“ReadOnlyColumns”已被设计器设置为null。我有其他正确设置的列表属性。DataGridView已将该属性正确设置为新列表,但宿主窗体上的设计器代码正在将其初始化为NULL。这会导致问题,尽管我可以围绕空值进行编码,但这是不对的。表单将字符串列表正确初始化为零对

我正在使用windows窗体应用程序,在窗体上有一个网格视图。表单设计器代码正在初始化具有名为“ReadOnlyColumns”属性的网格。属性是在数据网格视图的公共类中定义的对象列表

代码将被编译,但当我尝试加载表单时,“ReadOnlyColumns”已被设计器设置为null。我有其他正确设置的列表属性。DataGridView已将该属性正确设置为新列表,但宿主窗体上的设计器代码正在将其初始化为NULL。这会导致问题,尽管我可以围绕空值进行编码,但这是不对的。表单将字符串列表正确初始化为零对象列表。为什么它不能初始化自定义对象列表

下面是用于通用列表的代码,以及用于自定义列表返回null的代码

下面返回一个包含零个对象的列表-正确

this.dgvIndex.ColumnsToLower = ((System.Collections.Generic.List<string>)(resources.GetObject("dgvIndex.ColumnsToLower")));
this.dgvIndex.ColumnsToLower=((System.Collections.Generic.List)(resources.GetObject(“dgvIndex.ColumnsToLower”));
下面返回的列表为空-不正确

this.dgvIndex.ReadOnlyColumns = ((System.Collections.Generic.List<ControlFactory.DataGridViewControlColumnProperties>)(resources.GetObject("dgvIndex.ReadOnlyColumns")));
this.dgvIndex.ReadOnlyColumns=((System.Collections.Generic.List)(resources.GetObject(“dgvIndex.ReadOnlyColumns”));
dgvIndex.ReadOnlyColumns是数据网格上的公共属性,当此代码运行时,它是一个新列表,即使在调试器中,您也可以看到dgvIndex.ReadOnlyColumns是一个空列表,而不是null

当然,我没有编写设计器代码,但它肯定会引起问题


想法?

Winforms
DataGridView
没有
ReadOnlyColumns
。您正在使用一些组件库吗?更重要的是,为什么要直接访问表单资源(通常不应该)?关于值为什么为
null
,在xml序列化(winforms designer使用)中,具有默认值的属性不会序列化(不会显示在参考资料中)。
ReadOnlyColumns
属性是否具有属性
[DefaultValue(null)]
?是否启用了本地化功能?感谢Sinatr,这是我们基于windows datagridview构建的自定义控件。我们没有直接访问资源,但在调试代码时,这是空引用错误的来源。出于某种原因,我在这个网格视图上有一个属性,它是一个customObject,这导致了各种各样的问题。现在,围绕null返回进行编码。@RenniePet-不确定您所说的本地化是启用的。如果您在Visual Studio设计器中选择表单,则其中一个属性是可本地化的。如果该值设置为True,那么表单中所有控件的许多、更多属性将写入资源文件,以便它们可以在替代资源文件中本地化。我不知道这是否会有什么不同,但只是可能。