代码之家  ›  专栏  ›  技术社区  ›  apandit

当TreeView中有隐藏项时,键盘导航失败

  •  2
  • apandit  · 技术社区  · 15 年前

    所以我有一个类似下面的树视图,某些项目被隐藏。如果我试图用箭头键穿过树,我会被卡在“折叠”项目周围的项目上。你自己试试。

    
    <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>
    
    

    似乎没有其他人发布过这个问题(或博客),所以我发布这个问题是希望得到一个非黑客的解决方案。所以我的问题是:

    如何修复此错误?

    我计划扩展默认的treeview以跳过可见性设置为hidden/collapsed或isenabled设置为false的项。以前有没有人遇到过这种情况,并提出了一个好的解决方案?

    2 回复  |  直到 15 年前
        1
  •  5
  •   Timores    15 年前

    我不明白为什么会这样。 我可以通过添加:

     IsEnabled="False"
    

    到折叠的项目。那么,导航就如你所料。

        2
  •  3
  •   apandit    15 年前

    这里有一个可行的解决方案:禁用正在隐藏的项。如果该项被禁用,键盘导航将按预期工作。因此,无论何时设置项的可见性,当项不可见时,将isenabled设置为false。

    尝试问题中的代码,但将isenabled=“false”添加到所有折叠项中。它应该有用。