Chart for WPF and Silverlight / Chart Features / Data Binding / Binding to a DataTable from DataSet
In This Topic
Binding to a DataTable from DataSet
In This Topic

Here is sample code that creates the chart from the data table. 

Visual Basic
Copy Code
Private _dataSet As DataSet
Private Sub Window_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
    ' create connection and fill data set
    Dim mdbFile As String = "c:\db\nwind.mdb"
    Dim connString As String = String.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}", mdbFile)
    Dim conn As New OleDbConnection(connString)
    Dim adapter As New OleDbDataAdapter("SELECT TOP 10 ProductName, UnitPrice FROM Products " & vbCr & vbLf & " ORDER BY UnitPrice;", conn)
    _dataSet = New DataSet()
    adapter.Fill(_dataSet, "Products")
    ' set data table rows as the source for chart data
    c1Chart1.Data.ItemsSource = _dataSet.Tables("Products").Rows
End Sub

 

C#
Copy Code
DataSet _dataSet;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
  // create connection and fill data set
  string mdbFile = @"c:\db\nwind.mdb";
  string connString = string.Format(
    "Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}",
    mdbFile);
  OleDbConnection conn = new OleDbConnection(connString);
  OleDbDataAdapter adapter = new OleDbDataAdapter(
     @"SELECT TOP 10 ProductName, UnitPrice FROM Products
       ORDER BY UnitPrice;", conn);
  _dataSet = new DataSet();
  adapter.Fill(_dataSet, "Products");
  // set data table rows as the source for chart data
  c1Chart1.Data.ItemsSource = _dataSet.Tables["Products"].Rows;
} 

 

In XAML

XAML
Copy Code
<c1chart:C1Chart.Data>
  <c1chart:ChartData ItemNameBinding="{Binding Path=[ProductName]}">
    <c1chart:DataSeries ValueBinding="{Binding Path=[UnitPrice]}"/>
  </c1chart:ChartData>
</c1chart:C1Chart.Data> 

 

 

 

See Also