我正在尝试做类似于 Windows Phone 7 中的搜索器的事情,我所做的是以下内容,我有一个带有 TextChanged 事件的 TextBox 和一个 HyperlinkButtons 列表框。我尝试的是这样的:
private void searchFriend_TextChanged(object sender, TextChangedEventArgs e)
{
int index = 0;
foreach (Person person in lbFriends.Items)
{
ListBoxItem lbi = lbFriends.ItemContainerGenerator.ContainerFromItem(index) as ListBoxItem;
lbi.Visibility = Visibility.Visible;
if (!person.fullName.Contains((sender as TextBox).Text))
{
lbi.Background = new SolidColorBrush(Colors.Black);
}
index++;
}
}
这是xaml:
<TextBox x:Name="searchFriend" TextChanged="searchFriend_TextChanged" />
<ListBox x:Name="lbFriends" Height="535" Margin="0,0,0,20">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<HyperlinkButton x:Name="{Binding id}" Content="{Binding fullName}" FontSize="24" Click="NavigateToFriend_Click" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
这里的问题是当我有 68 个或更多元素时,ContainerFromItem 只返回 null ListBoxItems ...
任何的想法?
谢谢你们