我希望我不会错过现有的问题,但我找不到它。在我的项目中,我有一个RadTreeView显示了一个多级数据层次结构。控件设置为三态模式。如果用户单击较低级别的项目,则会检查父项(必要时进行全面检查或短划线检查):
[-]
- [] Item 1
--- [] Sub-Item 1-1
- [*] Item 2
--- [*] Sub-Item 2-1
在这个例子中,我检查了子项2-1。由于检查了所有子项,因此正确检查了父项2,根节点有一个短划线,表示检查了较低的内容。问题是CheckedItems集合包含三个条目,无法确定checked或indeterminate之间的区别。在内部有一个名为itemtogglestatestorage的集合,它正是我所需要的(项目和状态),但无法通过公共接口获得此功能。我错过了一些明显的东西吗推荐的解决方法是什么?
答案 0 :(得分:0)
我认为在这里使用数据更好,而不是使用UI元素。检查状态应该对应于数据绑定对象的某些属性。 Telerik文档在这里提供了一个很好的例子:Bind RadTreeViewItem CheckState Property(这是WPF文档,但它适用于SL,它比SL version更清晰)
您需要做的唯一更改是将bool
替换为bool?
,因为您现在应该有3个州,并将ToggleState.Indeterminate
添加到此doc页面中的两个对流方法中。那么你将能够从对象本身获得项目状态没有问题!