Отображение оконных форм в формате XML с использованием DataSet - PullRequest
1 голос
/ 22 ноября 2011

Я новичок в оконных формах и наборах данных. У меня вопрос выглядит легко, но я пока не могу обойти его. У меня есть данные XML, и я хотел бы отобразить их в сетке данных формы окна. (это сетка синхронизации данных) Мои XML-данные как показано ниже

<?xml version="1.0" encoding="utf-8" ?>
<Authors_Table>
  <authors>
    <au_id>172-32-1176</au_id>
    <au_lname>White</au_lname>
    <au_fname>Johnson</au_fname>
    <phone>408 496-7223</phone>
    <addresses>
    <address>10932 Bigge Rd.</address>
    <city>Menlo Park</city>
    <state>CA</state>
    <zip>94025</zip>
    </addresses>
    <contract>true</contract>
  </authors>
  <authors>
    <au_id>213-46-8915</au_id>
    <au_lname>Green</au_lname>
    <au_fname>Margie</au_fname>
    <phone>415 986-7020</phone>
    <addresses>
    <address>309 63rd St. #411</address>
    <city>Oakland</city>
    <state>CA</state>
    <zip>94618</zip>
      </addresses>
    <contract>true</contract>
  </authors>
  <authors>
    <au_id>238-95-7766</au_id>
    <au_lname>Carson</au_lname>
    <au_fname>Cheryl</au_fname>
    <phone>415 548-7723</phone>
    <addresses>
    <address>589 Darwin Ln.</address>
    <city>Berkeley</city>
    <state>CA</state>
    <zip>94705</zip>
      </addresses>
    <contract>true</contract>
  </authors>
  <authors>
    <au_id>267-41-2394</au_id>
    <au_lname>Hunter</au_lname>
    <au_fname>Anne</au_fname>
    <phone>408 286-2428</phone>
    <addresses>
    <address>22 Cleveland Av. #14</address>
    <city>San Jose</city>
    <state>CA</state>
    <zip>95128</zip>
      </addresses>
    <contract>true</contract>
  </authors>
  <authors>
    <au_id>274-80-9391</au_id>
    <au_lname>Straight</au_lname>
    <au_fname>Dean</au_fname>
    <phone>415 834-2919</phone>
    <addresses>
    <address>5420 College Av.</address>
    <city>Oakland</city>
    <state>CA</state>
    <zip>94609</zip>
      </addresses>
    <contract>true</contract>
  </authors>
</Authors_Table>

» мой код:

string path = "D:/Personal/Project/WinForm/DataSetExaple/DataSetExaple/Test.xml";
            dataSet1.ReadXml(path);
            gridDataBoundGrid1.DataSource = dataSet1;
gridDataBoundGrid1.DataMember = "authors";

Это выглядит так Wrong display.

Но я очень хочу показать, как это Right output

Как показать дочерний элемент узла xml на той же стороне, что и брат в сетке данных. Спасибо , L.E.

1 Ответ

1 голос
/ 22 ноября 2011

Проблема в том, что ваш xml:

  <authors>
    <au_id>172-32-1176</au_id>
    <au_lname>White</au_lname>
    <au_fname>Johnson</au_fname>
    <phone>408 496-7223</phone>
    <addresses>
    <address>10932 Bigge Rd.</address>
    <city>Menlo Park</city>
    <state>CA</state>
    <zip>94025</zip>
    </addresses>
    <contract>true</contract>
  </authors>

Обратите внимание, что на самом деле у вас есть дочерний элемент <addresses> ... </addresses>, предназначенный для связи с несколькими группами адресов.Измените ваш xml так, чтобы он выглядел следующим образом:

  <authors>
    <au_id>172-32-1176</au_id>
    <au_lname>White</au_lname>
    <au_fname>Johnson</au_fname>
    <phone>408 496-7223</phone>
    <address>10932 Bigge Rd.</address>
    <city>Menlo Park</city>
    <state>CA</state>
    <zip>94025</zip>
    <contract>true</contract>
  </authors>

Вы получите желаемый вывод.

WinForms DataGridView не предназначен для рендеринга вложенных записей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...