0

我希望我没有遗漏一个现有的问题,但是通过一些搜索我找不到它。在我的项目中,我有一个显示多级数据层次结构的 RadTreeView。控制器设置为三态模式。如果用户单击较低级别的项目,它会检查父项(根据需要进行完整检查或破折号检查):

[-]
 - [] Item 1
 --- [] Sub-Item 1-1
 - [*] Item 2
 --- [*] Sub-Item 2-1

在本例中,我检查了子项 2-1。父项 2 已正确检查,因为所有子项都已检查,根节点有一个破折号表示检查了某些内容。问题是 CheckedItems 集合包含三个条目,无法确定已检查或不确定之间的区别。在内部有一个名为 itemtogglestatestorage 的集合,它具有我所需要的(项目和状态),但无法通过公共接口获得它。我错过了一些明显的东西吗?处理此问题的推荐方法是什么?

4

1 回答 1

0

我认为在这里使用数据而不是 UI 元素会更好。检查状态应该对应于数据绑定对象的某些属性。Telerik 文档在这里有一个很好的这种绑定示例:绑定 RadTreeViewItem CheckState 属性(这是 WPF 文档,但同样适用于 SL,它比SL 版本更干净)

您需要做的唯一更改是替换bool为,bool?因为您现在应该有 3 个状态,并ToggleState.Indeterminate从此文档页面添加到两个转换方法。然后你就可以从对象本身获得项目状态了!

于 2013-10-11T07:49:38.007 回答