Windows Phone 7 のサーチャーに似たようなことをしようとしています。私が行ったことは次のとおりです。TextChanged イベントを持つ TextBox と、HyperlinkButtons の Listbox があります。私が試したことはこれです:
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 を返すだけです...
何か案が?
皆さん、ありがとうございました