Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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#WinForm继承的子项(窗体)无法访问父集合属性_C#_Winforms_Visual Studio - Fatal编程技术网

当父项已填充项时,c#WinForm继承的子项(窗体)无法访问父集合属性

当父项已填充项时,c#WinForm继承的子项(窗体)无法访问父集合属性,c#,winforms,visual-studio,C#,Winforms,Visual Studio,我有一个带有集合或列表的基窗体,其中包含一些我想与子窗体共享的类型化对象。我的想法是,我希望我的子表单也能够添加/删除这些对象。这些对象包含一些特定图标/按钮的定义,我想进行视觉继承 所以我有下面的基本形式 [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public List<TItem> TItems { get { return this._TItems; } } p

我有一个带有集合或列表的基窗体,其中包含一些我想与子窗体共享的类型化对象。我的想法是,我希望我的子表单也能够添加/删除这些对象。这些对象包含一些特定图标/按钮的定义,我想进行视觉继承

所以我有下面的基本形式

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public List<TItem> TItems
{
    get { return this._TItems; }
}

public FormBase()
{
    InitializeComponent();

    //TItems.Add(new TItem());
}
继承此基本表单后,我可以在designer中为子级自由修改集合。但是,一旦我注释掉了从父窗体添加项的部分,designer(对于子窗体)中的collection属性就会变灰,表示为只读

我尝试了不同类型的列表、自动属性、更改DesignerSerializationVisibility.visible、从子构造函数初始化列表。。。我只是无法实现我想要的


有人能给我指出正确的方向吗?

试着把它改成
BindingList
。我试过BindingList、List、observeCollection、IBindingList。。。所有这些都是相同的结果,集合属性在子对象上被禁用。我认为问题在于它不知道要创建什么类型的实例。我原以为
bindingslist
ITypedList
会解决这个问题,我也有同样的想法。但是,即使我将列表更改为列表,同样的事情也会发生。然后我假设这是由于名单的所有权,不一定。代码是在泛型出现之前编写的;它可能尚未更新以了解泛型。
public class TItem
{
    public string T1 { get; set; }
}