这与
another question
不幸的是,我很难在我的标题中总结这个问题,所以请耐心听我说。
我创建了一个名为
Folder
ITreeItem
接口并继承自
BindingList<ITreeItem>
. 我有第二节课,
TreeLeaf
,它是树中的一片叶子,是不能包含更多子项的终点。
目的是能够将数据绑定到
文件夹
并让数据绑定遍历文件夹树(以及n级子文件夹)和叶。然而,数据绑定并没有下降到数据库的底层绑定列表中
文件夹
文件夹
数据绑定时似乎没有子项。
,这是正确的,但没有意识到
文件夹
除了一个例子之外,还有别的吗
.
我的问题是
二者都
ITreeItem
也是一个
; 或者,我如何连接到数据绑定中以帮助它沿着结构走下去?
using System.ComponentModel;
using System.Windows.Forms;
namespace TreeData
{
public interface ITreeItem
{
string Name { get; set; }
}
class TreeLeaf : ITreeItem
{
public TreeLeaf(string name)
{
Name = name;
}
public string Name { get; set; }
}
class Folder : BindingList<ITreeItem>, ITreeItem
{
public Folder(string name)
{
Name = name;
}
public string Name { get; set; }
}
class Example
{
public Example()
{
var rootFolder = new Folder("Root");
var subFolder1 = new Folder("Folder1");
var subFolder2 = new Folder("Folder2");
rootFolder.Add(subFolder1);
rootFolder.Add(subFolder2);
subFolder1.Add(new TreeLeaf("Item1"));
subFolder1.Add(new TreeLeaf("Item2"));
subFolder2.Add(new TreeLeaf("Item3"));
subFolder2.Add(new TreeLeaf("Item4"));
var treeDataSource = new BindingSource();
treeDataSource.DataSource = rootFolder;
// For my purposes the 'bindableControl' is
// an Infragistics UltraTree or UltraGrid.
//bindableControl.DataSource = treeDataSource;
}
}
}