Another way is to use a BindingSource
Code:
Public Class Form1
Private ds As New DataSet
Private bsOrders As New BindingSource
Private Sub Form1_Load(
ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
ds.ReadXml("Orders.xml")
bsOrders.DataSource = ds.Tables(0)
bsOrders.Sort = "LastName"
DataGridView1.DataSource = bsOrders
End Sub
End Class
Orders.xml
Code:
<?xml version="1.0" encoding="utf-8" ?>
<Orders>
<Order>
<Identifier>1</Identifier>
<LastName>Smith</LastName>
<OrderID>5</OrderID>
<Amount>25.00</Amount>
</Order>
<Order>
<Identifier>2</Identifier>
<LastName>Jones</LastName>
<OrderID>100</OrderID>
<Amount>1000.00</Amount>
</Order>
<Order>
<Identifier>3</Identifier>
<LastName>Brown</LastName>
<OrderID>9</OrderID>
<Amount>11.00</Amount>
</Order>
<Order>
<Identifier>4</Identifier>
<LastName>Caffery</LastName>
<OrderID>12</OrderID>
<Amount>7.00</Amount>
</Order>
<Order>
<Identifier>5</Identifier>
<LastName>Jacobe</LastName>
<OrderID>12</OrderID>
<Amount>512.00</Amount>
</Order>
</Orders>
Or DataView
Code:
Public Class Form1
Private ds As New DataSet
Private Sub Form1_Load(
ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
ds.ReadXml("Orders.xml")
Dim dv = ds.Tables(0).DefaultView
dv.Sort = "LastName"
DataGridView1.DataSource = dv
End Sub
End Class