C# 读取xml使用linq无法获取所有节点

C# 读取xml使用linq无法获取所有节点,c#,xml,linq,C#,Xml,Linq,我是新来的,我的英语不好,所以这是我的问题 所以,它只显示姓名、性别和第一张图片。 如何获取所有图像您需要使用方法获取信息元素,我假设使用方法获取单个图片: var xml = XDocument.Load(@"details.xml"); var obj = (from info in xml.Descendants("info") let name = info.Element("name").Value let picture = info

我是新来的,我的英语不好,所以这是我的问题

所以,它只显示姓名、性别和第一张图片。 如何获取所有图像

您需要使用方法获取信息元素,我假设使用方法获取单个图片:

var xml = XDocument.Load(@"details.xml");
var obj = (from info in xml.Descendants("info")
            let name = info.Element("name").Value
            let picture = info.Descendants("image").FirstOrDefault()
            where name == value
            select new detail
            {
                Name = name,
                Gender = info.Element("gender").Value,
                Image = picture != null? picture.Value : null
            }).ToList();
编辑1

要获取所有图像,您需要进行以下更改:

在类详细信息中更改图像属性的类型

最后,更改xaml以显示图像集合,并将其绑定到detail类的images属性

编辑2

要在xaml中显示图像集合,请使用以下命令更改图像标记:

var obj = ( from info in xml.Descendants("info")
            let name = info.Element("name").Value
            let images = info.Descendants("image")
            where name == value
            select new detail
            {
                Name = name,
                Gender = info.Element("gender").Value,
                Images = images.Select(elem => elem.Value)
            }).ToList();
<ItemsControl ItemsSource = {Binding Images}>
    <ItemsControl.ItemTemplate>
        <Image Source = {Binding .}></Image>
    </ItemsControl.ItemTemplate>
</ItemsControl>
我还没有测试它,所以它可能需要一些调整才能正常工作,但这应该足以为您指出正确的方向


新年快乐

欢迎来到堆栈溢出。以纯文本形式共享您的代码。请阅读,作为一个开始..欢迎来到SO:。请尽量把所有相关的材料放在你的问题里面,因为很难来回检查我们有什么,问题是什么等。所以请把你图片中包含的所有东西复制粘贴到你的帖子里。谢谢你的回答,但请展示第一张图片。如何获得所有image@abcd1234,对不起,我迟到了,我是AFK。请查看最新的编辑。@RePierre-我了解您的情况,但图像不显示。我不明白如何更改xaml以显示图像集合并将其绑定到detail类的images属性help@abcd1234,您的xaml将字符串from Image属性绑定到要显示的图像的路径。由于属性将转换为字符串集合,因此需要调整标记以显示多个图像,每个图像的源都绑定到集合中的一个值。@RePierre-谢谢。但是你可以给我看代码吗?我不知道怎么做
<ItemsControl ItemsSource = {Binding Images}>
    <ItemsControl.ItemTemplate>
        <Image Source = {Binding .}></Image>
    </ItemsControl.ItemTemplate>
</ItemsControl>