问题
For example: there is a listbox:
<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>
How can I change TextBlocks's visibility properties programmatically?
回答1:
The ListBoxgenerates a container of type ListBoxItem for each item. You can access it as follows:
ListBoxItem lbi = lb.ItemContainerGenerator.ContainerFromIndex(0) as ListBoxItem
lbi.Visibility = Visibility.Collapsed;
If you want access to the TextBlock you will need to navigate the visual tree of the ListBoxItem. For example, using Linq to VisualTree:
TextBlock txt = lbi.Descendants<TextBlock>().Single() as TextBlock;
来源:https://stackoverflow.com/questions/9427695/how-can-i-change-listbox-items-visibility-property-in-wp7