为列表中的每个ImageSource设置一个名称
本文关键字:一个 ImageSource 列表 设置 | 更新日期: 2023-09-27 18:20:47
我调用一个API,从那里得到一个id、一个名称和一个图像的URL。。。
我在翻转视图中显示它们,我过去常常转换它们,将它们保存在文件夹中,转换回并显示它们。。。
所以我想如果我直接从他们的URL显示他们会容易得多。
现在,当用户点击(点击)图像时,它必须转到另一个页面来显示该图像的详细信息(在保存图片时,它工作得很好,因为我用id(id.png)命名了它们)
我是否可以将ImageSource命名为此id,或者将其作为属性(Title或name)?
var pics = from special in GlobalVariables.Special
where special.special == "1"
select new { id = special.id, name = special.name, image = special.banner_image, featured = special.special };
foreach (var item in pics)
{
await savePicToDisk(item.image, item.name, item.id, item.featured);
}
因此,与其保存它们:
List<ImageSource> listOfImages = new List<ImageSource>();
string url = "http://52.8.2.140" + picAddress;
ImageSource urlOfPic = new BitmapImage(new Uri(url, UriKind.Absolute));
listOfImages.Add(urlOfPic);
然后,在我必须向他们展示的地方,我只需将其绑定到翻转视图:
flipView1.DataContext = Classes.Special.listOfImages;
Item_Click事件的参数具有属性ClickedItem(在某些情况下,您可能还需要OriginalSource),您可以使用该属性指向集合中的项目。如果项的类具有负责Name/Id/other的属性,则您可以在导航时自由传递该属性,其他解决方案可能正在传递集合中所选项的索引。示例代码;
private void ItemClick(object sender, ItemClickEventArgs e)
{
var item = e.ClickedItem as ItemClass;
if (item != null)
Frame.Navigate(typeof(DetailPage), item.ID);
// if your item contains a Name/Id/other you can pass that when navigating
// you can also pass index of your item in collection if you need
}