在我的xamarin.forms应用程序中,我有一个Listview.Listview包含绑定到photoURL的图像。我已经在listview的顶部实现了一个搜索框。一切正常,但是我现在面临的问题是每当我搜索时对于列表中的任何内容,该项目都会出现。但是每种字符类型的图像都会闪烁。我从绑定到listview的API获取数据。 请参考链接:https://gfycat.com/WaterloggedBeneficialGlobefish
我的图片绑定
<Grid>
<ci1:CircleImage
HeightRequest="200"
Source="empavatar.png"
Aspect="AspectFit">
</ci1:CircleImage>
<ci1:CircleImage
HeightRequest="200"
Source="{Binding PhotoURL}"
Aspect="AspectFit">
</ci1:CircleImage>
</Grid>
当ImageURL为null时,我使用圆形imageview和模板图像。
我的搜索
private void SearchBar_TextChanged(object sender, TextChangedEventArgs e)
{
if (string.IsNullOrEmpty(e.NewTextValue))
{
EmployeeListView.ItemsSource = resultObjForEmployee;
}
else
{
EmployeeListView.ItemsSource = resultObjForEmployee.Where(x => x.Name.ToLower().StartsWith(e.NewTextValue));
}
}
resultObjForEmployee 是我从json获得的结果。
请帮助我解决此问题。
答案 0 :(得分:1)
尝试将Listview的 CachingStrategy 设置为“ RecycleElement ”
<ListView CachingStrategy="RecycleElement">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid>
<ci1:CircleImage
HeightRequest="200"
Source="empavatar.png"
Aspect="AspectFit"></ci1:CircleImage>
<ci1:CircleImage
HeightRequest="200"
Source="{Binding PhotoURL}"
Aspect="AspectFit"></ci1:CircleImage>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>