0

我无法获得一个列表框来显示结果,我只能使用“nameInput.Text”,我不知道如何在 foreach 中工作,有人可以帮忙吗?

C#代码:

XDocument xdoc = XDocument.Load("biblia.xml");

var pais = 
    from pai in xdoc.Descendants("b")
    where (string)pai.Attribute("indice") == selectedindex.ToString()
    select new
    {
        Filho = pai.Descendants("c")
    };

foreach (var pai in pais) {
    foreach (var filho in pai.Filho) {
        nameInput.Text = nameInput.Text + "     " + filho.Attribute("n");
    }
}

XAML:

<ListBox x:Name="listBox2">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Margin="10" >
                <TextBlock Text="{Binding filho}"/>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

编辑:这是xml的一部分

XML:

<?xml version="1.0" encoding="UTF-8"?>
<bible>
  <b n="Gênesis" indice="1">
    <c n="1">
      <v n="1"></v>
      <v n="2"></v>
    </c>
    <c n="2">
      <v n="1"></v>
      <v n="2"></v>
    </c>
  <b n="Êxodo" indice="2">
    <c n="1">
      <v n="1"></v>
      <v n="2"></v>
    </c>
    <c n="2">
      <v n="1"></v>
      <v n="2"></v>
    </c>
  </b>
</bible>

编辑我认为解决方案是创建一个列表:

List<string> MyList = new List<string>();

foreach (var pai in pais) {
    foreach (var filho in pai.Filho) {
        MyList.Add(filho.Attribute("n").Value);
    }
}
listBoxTeste1.ItemsSource = MyList;
4

0 回答 0