.NET WinForms DataBinding - BindingList <ibindableitem>其中IBindableItem的某些实现也可以实现IList </ibindableitem>

时间:2009-08-18 16:27:47

标签: c# .net winforms data-binding recursive-databinding

这与我的another question有关,不幸的是我在标题中总结这个问题很困难 - 所以请耐心等待。

我创建了一个名为Folder的databindable类,它实现了ITreeItem接口并继承自BindingList<ITreeItem>。我有第二个类TreeLeaf,它是树中的一个叶子,一个不能包含更多子项的终点。

目的是能够数据绑定到Folder并使数据绑定遍历文件夹树(和n级子文件夹)和叶子。但是,数据绑定不会下降到Folder的基础BindingList中,因此{alpha}在数据绑定时似乎没有子项。

到目前为止,看起来数据绑定正在使用该文件夹作为Folder的实例,这是正确的,并没有意识到ITreeItem不是Folder的实例。

我的问题是:我如何向数据绑定公开文件夹 ITreeItem的实现以及{{1}的后代};或者我如何挂钩数据绑定以帮助它沿着结构走下去?

以下是目前实施的一个示例:

ITreeItem

1 个答案:

答案 0 :(得分:1)

您可能想考虑拥有儿童房产吗?

public class Folder : ITreeItem
{
    public Folder(string name)
    {
        Name = name;
        Children = new BindingList<ITreeItem>();
    }

    public string Name { get; set; }

    public BindingList<ITreeItem> Children { get; private set; }
}