我有一个treeviewitem,其中header属性包含其他元素,如TextBlock。 我想如果TextBlock Text =“Empty”,TreeViewItem就不可以了。 这里我设置了TextBox Focasable属性,但是包含TreeViewItem是可以进行的。
我希望包含带有Text =“Empty”的TextBlock的TreeViewItem不可用于focasable。 感谢
这是我的尝试。
<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>
答案 0 :(得分:1)
您需要为TreeViewItem设置Focusable属性,而不是为TextBlock设置。这就是您的项目始终可以集中注意力的原因。我建议你将属性Text(TextBlock)和属性Focusable(TreeViewItem)绑定到ViewModel类中的另一个属性,并使用转换器将字符串转换为您的Focusable属性的bool。