2010-03-01 28 views
2

所以我有一個類似於下面的TreeView,並且某些項目被隱藏。如果我嘗試用箭頭鍵穿過樹,我會卡在圍繞「摺疊」物品的物品上。親自嘗試一下。當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> 
 

沒有其他人似乎也張貼了這個問題(或博客上講述它),所以我張貼在獲得非哈克解決這個的希望。所以這裏是我的問題:

我該如何解決這個錯誤?

我打算擴展默認的TreeView來跳過Visibility設置爲Hidden/Collapsed或IsEnabled設置爲false的項目。有沒有其他人遇到過這個問題,並提出一個好的解決方案?

回答

5

我不明白爲什麼會發生這種情況。 我可以通過添加:

IsEnabled="False" 

到摺疊項目。然後,導航按照您的預期工作。

3

下面是一個解決方案:禁用您隱藏的項目。如果該項目被禁用,則鍵盤導航按其應有的原樣工作。因此,無論何時設置項目的可見性,當項目不可見時都將IsEnabled設置爲false。

嘗試問題中的代碼,但將IsEnabled =「false」添加到所有摺疊項目。它應該工作。