为列表中的每个ImageSource设置名称

时间:2015-11-05 17:21:01

标签: c# windows-phone-8.1 imagesource

我调用API并从那里获取图像的ID,名称和URL ...

我在flipview中显示它们并且我曾经将它们转换,将它们保存在一个文件夹中,然后将它们转换回来并显示它们......

所以我认为如果我直接从他们的网址上显示它们会更容易。

现在,当用户点击(点击)图片时,它必须转到另一个页面以显示该图像的细节(并且在保存图片时工作正常,因为我用id命名它们( id.png))

无论如何我可以将ImageSource命名为此id,或者将其命名为属性(Title或Name)?

DEBUG

那么,而不是保存它们:

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);
}

然后,在我必须展示它们的地方,我只是将它绑定到flipview:

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);

1 个答案:

答案 0 :(得分:0)

Item_Click 事件的参数有一个属性 ClickedItem (在某些情况下,您可能还需要 OriginalSource ),您可以使用它来指向您在集合中的项目。如果item的类具有负责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
}