0
几年前,我用Java写了一个绘图应用程序。它将边和顶点存储在QuadTree中,每当我必须绘制它们时,都会循环使用。直接绘制到面板
今天,我需要在WPF中做类似的事情,但是,我注意到我必须将元素添加到面板中的Children列表才能绘制。这是效率低下,因为现在我有效地存储两个版本的数据。与使用四叉树相比,删除元素的成本也很高。
有没有更好的方法来实现这一点,而不必使用儿童列表?
几年前,我用Java写了一个绘图应用程序。它将边和顶点存储在QuadTree中,每当我必须绘制它们时,都会循环使用。直接绘制到面板
今天,我需要在WPF中做类似的事情,但是,我注意到我必须将元素添加到面板中的Children列表才能绘制。这是效率低下,因为现在我有效地存储两个版本的数据。与使用四叉树相比,删除元素的成本也很高。
有没有更好的方法来实现这一点,而不必使用儿童列表?
在WPF中,你通常不直接使用的面板,如果你有一个数据源,而不是你使用一些ItemsControl
,结合其ItemsSource
,建立ItemsPanel
您要使用,并创建一个ItemTemplate
定义如何不管面板项目将被显示。 (Canvas
binding example)
与面板这种工作方式意味着您不必手动照顾Children
收集的,如果你的ItemsSource
工具INCC
将保持同步。我意识到这可能对你的树有点困难,但也许你可以找出一些东西。
看看这个[SO问题](http://stackoverflow.com/questions/2112034/drawing-3d-lines-in-wpf)会为你工作吗 –