Ho passato molto tempo a cercare una soluzione al mio problema con scarso successo. Sono piuttosto nuovo con .NET e vb.net quindi mi scuso se questo sembra semplice per chiunque altro. Ho avuto una prima versione di quello che sto cercando di fare e che ha funzionato bene. Fornirò XML di esempio e il codice vb.net che ho usato per renderlo. Dato che ho deciso di aggiungere un nodo aggiuntivo al file XML, non sono più sicuro su come elaborarlo.
XML originale:
<?xml version="1.0" encoding="utf-8"?>
<!--Transaction File.-->
<Transaction>
<Items>
<Item>
<ItemID>1234</ItemID>
<PriceEach>100.00</PriceEach>
<Purchased>2</Purchased>
<ItemTotal>200.00</ItemTotal>
</Item>
<Item>
<ItemID>2345</ItemID>
<PriceEach>2.50</PriceEach>
<Purchased>3</Purchased>
<ItemTotal>7.50</ItemTotal>
</Item>
</Items>
</Transaction>
Codice Vb.net per popolare DataGridView con ogni voce che è la sua stessa riga.
Dim Transaction As New DataSet
Transaction.ReadXml(TransactionID) 'TransactionID is sent to this code
DataGridView1.DataSource = Transaction.Tables(0)
Funziona perfettamente. Tuttavia, ho deciso che dovevo aggiungere un nuovo nodo per contenere il costo totale per la transazione specifica. Quindi il nuovo file XML è così:
<?xml version="1.0" encoding="utf-8"?>
<!--Transaction File.-->
<Transaction>
<TransactionTotal>207.50</TransactionTotal>
<Items>
<Item>
<ItemID>1234</ItemID>
<PriceEach>100.00</PriceEach>
<Purchased>2</Purchased>
<ItemTotal>200.00</ItemTotal>
</Item>
<Item>
<ItemID>2345</ItemID>
<PriceEach>2.50</PriceEach>
<Purchased>3</Purchased>
<ItemTotal>7.50</ItemTotal>
</Item>
</Items>
</Transaction>
Quindi ora ho un nuovo set di tag TransactionTotal che dovrebbe essere visualizzato come proprietà text di un'etichetta denominata TransactionTotal. TransactionTotal.Text = ?? I tag TransactionTotal si trovano allo stesso livello dei tag Articoli. E quindi DataGridView dovrebbe mostrare tutti gli articoli all'interno degli articoli come una nuova riga nel DGV.
Ovviamente questo nuovo nodo rende invalido il mio codice popolato DGV originale. Uso un'istruzione Try / Catch che non genera errori perché il file XML viene trovato e viene convalidato come XML corretto ma il mio DGV è vuoto poiché il codice viene eliminato da TransactionTotal che viene aggiunto al mix.
Apprezzo molto ogni aiuto che mi guida nel modo giusto!