2010-04-21 75 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。

相关问题