例如: 有一个列表框:
<ListBox Margin="24,107,12,28" Name="lb">
<TextBlock Text="Text" TextWrapping="Wrap" FontSize="22" Visibility="Collapsed" />
<TextBlock Text="Text2" TextWrapping="Wrap" FontSize="22" Visibility="Collapsed" />
<TextBlock Text="Text3" TextWrapping="Wrap" FontSize="22" Visibility="Collapsed" />
</ListBox>
如何以编程方式更改TextBlocks的可见性属性?
答案 0 :(得分:5)
ListBox
为每个项目生成ListBoxItem
类型的容器。您可以按如下方式访问它:
ListBoxItem lbi = lb.ItemContainerGenerator.ContainerFromIndex(0) as ListBoxItem
lbi.Visibility = Visibility.Collapsed;
如果您想要访问TextBlock
,则需要浏览ListBoxItem
的可视树。例如,使用Linq to VisualTree:
TextBlock txt = lbi.Descendants<TextBlock>().Single() as TextBlock;