Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 已解析的XML到Listbox_C#_Xml_Listbox - Fatal编程技术网

C# 已解析的XML到Listbox

C# 已解析的XML到Listbox,c#,xml,listbox,C#,Xml,Listbox,我已经用这个简单的代码做了类似的事情: var data = from query in xml.Descendants("item") select new Object { Element = (string)query.Element("element"), }; listBox.ItemsSource = dat

我已经用这个简单的代码做了类似的事情:

 var data = from query in xml.Descendants("item")
                   select new Object
                   {
                       Element = (string)query.Element("element"),
                   };
        listBox.ItemsSource = data;
但是我还必须处理嵌套的XML,所以我担心代码无法处理该文件,所以我遵循了这个主题,现在我不知道如何在列表框中显示数据

我使用此类序列化XML:

{
[XmlRoot("contacts")]

public class Contacts
{
    [XmlElement("building")]
    public Building[] BuildingList { get; set; }

}

public class Building
{
    [XmlElement("name")]
    public string Name { get; set; }

    [XmlElement("address")]
    public string Address { get; set; }

    [XmlElement("tel")]
    public string Tel { get; set; }

    [XmlElement("email")]
    public string Email { get; set; }

    [XmlElement("link")]
    public string Link { get; set; }

    [XmlElement("timing")]
    public string Timing { get; set; }

    [XmlArray("contacts"), XmlArrayItem("contact")]
    public Contact[] ContactList { get; set; }
}

[XmlRoot("contact")]
public class Contact
{
    [XmlElement("surname")]
    public string Surname { get; set; }

    [XmlElement("name")]
    public string Name { get; set; }

    [XmlElement("area")]
    public string Area { get; set; }

    [XmlElement("role")]
    public string Role { get; set; }

    [XmlElement("tel")]
    public string Tel { get; set; }

    [XmlElement("email")]
    public string email { get; set; }
}
这是我的列表框:

<ListBox x:Name="listBox_buildings">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel VerticalAlignment="Top">
                            <TextBlock  x:Name="text_title" Foreground="Black" FontSize="25"  TextWrapping="Wrap" HorizontalAlignment="Stretch" Text="{Binding Name}"/>
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>

有人有线索吗?谢谢

如果不知道您是如何实施链接问题中提出的解决方案,很难说。假设您有一个Users类来映射XML,如下所示:

public class Users
{
    [XmlElement("user")]
    public User[] UserList { get; set; }
}
您可以这样在列表框中显示数据,例如:

XmlSerializer ser = new XmlSerializer(typeof(Users));
var u = (Users)ser.Deserialize(stream);
listBox.ItemsSource = u.UserList;
更新:

根据您发布的新信息,您可以尝试以下方法:

XmlSerializer ser = new XmlSerializer(typeof(Contacts));
var u = (Contacts)ser.Deserialize(stream);
listBox_buildings.ItemsSource = u.BuildingList;

Mm编译器告诉我:“System.Windows.Controls.ListBox”不包含“ItemSource”的定义,并且找不到接受“System.Windows.Controls.ListBox”类型的第一个参数的扩展方法“ItemSource”。是否缺少using指令或程序集引用?我在我原来的帖子中添加了新的信息,我也尝试过同样的方法,但它给了我上面写的错误