Xamarin 表单:不同的项目正在调用而不是 flowlistview 中的选定项目?
Xamarin forms: Different item is invoking instead of selected item in flowlistview?
最近我发布了一个 与 flowlistview
项目可见性相关的问题,这个问题也与此相关。
我在一个列表中有 8 张图片,最初显示的是问号图片。当点击问号图像时,真实图像将在问号图像下方可见。使用最近的线程实现了此功能。
这是一款适合儿童的游戏。 游戏规则:玩家先点击一张图片,然后真实图片对玩家可见。然后玩家点击另一个图像,然后玩家现在也可以看到该真实图像。如果图像匹配,玩家将获得分数,并且 select 编辑的项目将从 UI 中移除。如果不匹配再次隐藏带有问号图像的真实图像。
我已经做了上面的事情,但问题是有时select图像的离子是错误的。如果我 select 第四张图片,则第二张或第六张下面的图片显示在 UI 中。不知道这背后的原因是什么。我已经上传了一个示例项目 here.
原因: 您通过确定图片的 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;
}
}
最近我发布了一个 flowlistview
项目可见性相关的问题,这个问题也与此相关。
我在一个列表中有 8 张图片,最初显示的是问号图片。当点击问号图像时,真实图像将在问号图像下方可见。使用最近的线程实现了此功能。
这是一款适合儿童的游戏。 游戏规则:玩家先点击一张图片,然后真实图片对玩家可见。然后玩家点击另一个图像,然后玩家现在也可以看到该真实图像。如果图像匹配,玩家将获得分数,并且 select 编辑的项目将从 UI 中移除。如果不匹配再次隐藏带有问号图像的真实图像。
我已经做了上面的事情,但问题是有时select图像的离子是错误的。如果我 select 第四张图片,则第二张或第六张下面的图片显示在 UI 中。不知道这背后的原因是什么。我已经上传了一个示例项目 here.
原因: 您通过确定图片的 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;
}
}