1

好吧,我以为我已经解决了这个问题。我只是更改了 TreeViewItem 的模板以忽略特定节点是否已展开。看起来很棒!但仅此而已……它看起来很棒!键盘导航仍然会像节点展开或折叠一样响应。

例如,如果我在根节点上并点击右箭头(没有移动,也不应该移动)然后向下击,我转到根的第一个子节点。但是,如果我在根节点上并左击(同样,没有任何移动)然后向下击,我跳到第二个根节点,跳过第一个节点的所有子节点!

不用说,这不是我们想要的行为。我们可以简单地吞下左右箭头键,或者干脆完全放弃树视图并移动到嵌套项目演示者(无论如何这都是 TreeView 所做的),但我希望我不必重新创建整个仅针对此功能进行控制。想法?

4

1 回答 1

0

在您的 TreeViewItem 模板中,您可以将 IsExpanded 设置为 true,然后如果您的所有项目具有子元素,则它们应该被展开。

不幸的是,您可能不得不吞下这些击键才能获得所需的键盘导航,因为您看到的导航是设计使然。

您可以创建从 TreeView 继承的自定义树视图,并将这些按钮事件放在那里,以便您可以重复使用它。

于 2012-01-09T18:50:04.747 回答