所以我有一个类似下面的TreeView,隐藏了某些项目。如果我尝试使用箭头键浏览树,我会卡在“折叠”项目周围的项目中。亲自尝试一下。
<Window x:Class="Example.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="TreeViewBug" Height="300" Width="300">
<Grid>
<TreeView>
<TreeViewItem Header="a." />
<TreeViewItem Header="b" Visibility="Collapsed" />
<TreeViewItem Header="c." />
<TreeViewItem Header="d" />
<TreeViewItem Header="e." />
<TreeViewItem Header="f" Visibility="Collapsed"/>
<TreeViewItem Header="g." />
<TreeViewItem Header="h" />
</TreeView>
</Grid>
</Window>
似乎没有其他人发布过这个问题(或者是关于它的博客),所以我发布它是希望得到一个非hacky解决方案。所以这是我的问题:
如何修复此错误?
我计划扩展默认的TreeView以跳过将Visibility设置为Hidden / Collapsed或IsEnabled设置为false的项目。有没有其他人在此之前遇到过这个并找到一个好的解决方案?
答案 0 :(得分:5)
我不明白为什么会这样。 我可以通过添加:
来修复它 IsEnabled="False"
到折叠的项目。然后,导航按照您的预期工作。
答案 1 :(得分:3)
这是一个有效的解决方案:禁用您隐藏的项目。如果禁用该项,键盘导航将按预期工作。因此,每当您设置项目的可见性时,在项目不可见时将IsEnabled设置为false。
尝试问题中的代码,但将IsEnabled =“false”添加到所有折叠的项目中。它应该工作。