当父项已填充项时,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; }
}