【发布时间】:2011-12-12 17:00:50
【问题描述】:
我想把它画成这样的图像:
我可以在控制台上画一棵二叉树。我想使用 WPF 绘制它。这是我为控制台编写的代码。
class Program
{
static void Main(string[] args)
{
List<BinaryTreeData> myBinaryData = new List<BinaryTreeData>();
myBinaryData.Add(new BinaryTreeData{ownID=1});
myBinaryData.Add(new BinaryTreeData { parentID=1, ownID = 2 });
myBinaryData.Add(new BinaryTreeData { parentID=1,ownID = 3 });
foreach (var item in myBinaryData)
{
Console.WriteLine("{0}------{1}", item.parentID, item.ownID);
}
}
}
class BinaryTreeData : INotifyPropertyChanged
{
private int _ownID;
private int _parentID;
public int ownID
{
get { return this._ownID; }
set { this._ownID = value; this.onChange("ownID"); }
}
public int parentID
{
get { return this._parentID; }
set { this._parentID = value; this.onChange("parentID"); }
}
public event PropertyChangedEventHandler PropertyChanged;
private void onChange(string propertyName)
{
if (PropertyChanged!=null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
我不明白我该怎么做。
【问题讨论】:
-
我认为问题在于您的数据结构:您的结构不是树状结构。当然,您有 ID 供参考,但您没有隐式对象结构。您可以将 BinaryTreeData 更改为拥有 BinaryTreeData 的集合来引用子项吗?如果您可以通过 HierarchicalDataTemplate 将此绑定更改为树视图,则相当容易。
标签: c# .net wpf data-binding binary-tree