以编程方式在Silverlight TreeView上显示展开箭头

时间:2009-09-09 13:04:57

标签: silverlight treeview expand

我有一个Silverlight TreeView控件,当我点击一个特定节点时,我会动态填充它。例如,我加载第一代(级别)节点,然后当用户点击其中一个节点时,我使用Selected事件来填充该节点的子节点等等。我从我的数据库发回一个bool每个节点值的值,指示新节点是否具有子节点。

我想设置展开箭头以显示有子节点的新节点,但问题是它的子节点尚未填充。我想可能会将HasChild设置为我的bool值,但HasChild是只读的。任何建议都将非常感谢。

2 个答案:

答案 0 :(得分:1)

只是在折叠时添加空白的treeviewitem以显示箭头。

但是当用户扩展时,清除那个空白的孩子,并进行异步调用以获得真正的孩子。

在执行GetChildrenAsync调用时将UserState设置为父treeviewitem或id。

当他们到达时,UserState应该是父树treeiteite或id,当你找到你刚刚将它的itemsource设置为e.Result的父。

答案 1 :(得分:0)

如果您熟悉依赖项属性,则可以创建一个依赖项属性,您可以在代码中设置该属性,并在xaml中获取,以便绑定到该属性。

这将允许您使用ValueConverter呈现箭头的可见性。