2010-04-21 77 views
1

我有一個treeviewitem頭屬性包含其他元素,如TextBlock。 我想如果TextBlock文本=「空」,Tr​​eeViewItem不可變焦。 這裏我設置了TextBox Focasable屬性,但包含的TreeViewItem是可變焦的。如何從其標題中的元素更改TreeViewItem屬性?

我希望TreeViewItem包含TextBlock和Text =「Empty」不可變焦。 謝謝

這是我的嘗試。

<Grid> 
    <TreeView> 
     <TreeViewItem> 
      <TreeViewItem.Header> 
       <TextBlock Text="John"> 
        <TextBlock.Style> 
         <Style TargetType="{x:Type TextBlock}"> 
         <Style.Triggers> 
            <Trigger Property="Text" Value="Empty"> 
            <Setter Property="Background" Value="Red" /> 
             <Setter Property="Focusable" Value="False"></Setter> 
            </Trigger> 
         </Style.Triggers> 
        </Style> 
        </TextBlock.Style> 
       </TextBlock> 
      </TreeViewItem.Header> 
     </TreeViewItem> 
     <TreeViewItem> 
      <TreeViewItem.Header> 
       <TextBlock Text="Empty"> 
        <TextBlock.Style> 
         <Style TargetType="{x:Type TextBlock}"> 
         <Style.Triggers> 
          <Trigger Property="Text" Value="Empty"> 
            <Setter Property="Background" Value="Red" /> 
             <Setter Property="Focusable" Value="False"></Setter> 
            </Trigger> 
         </Style.Triggers> 
        </Style> 
        </TextBlock.Style> 
       </TextBlock> 
      </TreeViewItem.Header> 
     </TreeViewItem> 
    </TreeView> 
</Grid> 

回答

1

您需要設置TreeViewItem的Focusable屬性,而不是TextBlock。這就是爲什麼你的物品總是可以聚焦的原因。我建議你將屬性Text(的TextBlock)和屬性Focusable(的TreeViewItem)綁定到ViewModel類中的另一個屬性,並使用轉換器將字符串轉換爲Focusable屬性的bool。

相關問題