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