【问题标题】:How to bind image in Gridview using xml parsing in windows metro app如何在 Windows Metro 应用程序中使用 xml 解析在 Gridview 中绑定图像
【发布时间】:2013-02-13 13:56:12
【问题描述】:

我正在开发我的第一个 Windows 8 应用程序。我正在尝试显示填充有图像和图像描述的 GridView。我想从我创建的 XML 文件中获取数据。我找到了 GridView 的 ItemSource 属性,并尝试将我的 XML 文件绑定到它,但我不能这样做。

请告诉我执行此任务的正确方法。谢谢

【问题讨论】:

  • 我们需要比这更多的信息来帮助您。你试过什么?究竟是什么不工作?你的 XML 是什么样的?

标签: c# windows-store-apps


【解决方案1】:

您不能将 XML 文件直接绑定到 GridView.ItemsSource,您需要先将其解析为对象。我会创建一个类,其中所有数据都显示在GridView

public class GridViewItem
{
    public string Description { get; set; }
    public ImageSource Image { get; set; }
}

下一步是将XML文件解析成GridViewItems的列表:

var xmlString = await FileIO.ReadTextAsync(storageFile);
var xml = XDocument.Parse(xmlString);
var Items = xml.Element("rootNode").Elements("itemNode").Select(i => new GridViewItem
    {
        Description = (string)i.Element("descriptionNode"),
        Image = ParseImage(i.Element("imageNode"))
    }).ToList();

我假设您的 XML 中的标签是 rootNodeitemNodedescriptionNodeimageNode。另外我不知道您的图像数据是如何存储在 XML 中的。将其转换为ImageSource 的逻辑应该在ParseImage() 中。

剩下的唯一一件事就是将上面的Items 列表分配给您的视图模型中作为您DataContext 的属性并将其绑定到ItemsSource

<GridView ItemsSource="{Binding Items}" />

这是基本思想。我的回答中缺少很多细节,但根据您的问题,这是我能做的最好的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多