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>