首页 > 解决方案 > Xamarin 表单:不同的项目正在调用而不是 flowlistview 中的选定项目?

问题描述

最近我发布了一个与项目可见性有关的问题flowlistview,这个问题也与此有关。

我在列表中有 8 张图片,最初显示的是问号图片。当点击问号图像时,真实图像将在问号图像下方可见。使用最近的线程实现了此功能。

这是一个为孩子们准备的游戏。游戏规则:玩家首先点击一个图像,然后玩家可以看到真实图像。然后玩家点击另一个图像,然后玩家现在也可以看到该真实图像。如果图像匹配,玩家将获得积分,并且两个选定的项目都将从 UI 中删除。如果不匹配再次隐藏带有问号图像的真实图像。

上面的事情我都做了,但是问题是有时候图片的选择是错误的。如果我选择第四张图像,则第二张或第六张下的图像将显示在 UI 中。不知道这背后的原因是什么。我在这里上传了一个示例项目。

标签: listviewxamarin.formsvisibility

解决方案


原因:您通过确定它们的imageUrl是否相等来匹配图片。但是 imageUrl 在 List 中并不是唯一的。

解决方案:您可以在模型中添加一个属性Id

public int Id { get; set; }

并通过确定项目的 Id 是否相等来处理逻辑。

ImageItems.Add(new NameMatchList() { Id = 1,imageUrl = "/cbrain-app/files/doc-lib/2018/02/22/11/46/06/971/head/Comfort the Sorrowing.png" });
ImageItems.Add(new NameMatchList() { Id = 2, imageUrl = "/cbrain-app/files/doc-lib/2018/02/22/11/46/23/784/head/Giving Food To The Hungry.png" });
//...
if (items.Id == selecteditem.Id)
{
   if (!firstImageFlipped)
   {
     items.ImageVisibility = true;
     items.TopImageVisibility = false;
     firstImageFlipped = true;
     Application.Current.Properties["FirstImageUrl"] = selecteditem.imageUrl;
     Application.Current.Properties["FirstImageItem"] = selecteditem;
   }
}

推荐阅读