Search code examples
mysqlwpfdata-bindingdatasetwpfdatagrid

How should I cast a DataTable for assignment to DataGrid.ItemsSource?


I am trying to learn WPF, and trying to populate a WPF DataGrid with data from a MySQL database. The relevant code is:

        dataGrid.DataContext = myMySQL.DBDataSet;
        dataGrid.ItemsSource = myMySQL.DBDataSet.Tables[tblName];

dataGrid is a WPF DataGrid control. myMySQL.DBDataSet is a System.Data.DataSet. I get the following error on the second line of code above.

"Cannot implicitly convert type 'System.Data.DataTable' to 'System.Collections.IEnumerable'. An explicit conversion exists (are you missing a cast?)"

Yes, I probably need a cast. I am glad to hear that an explicit conversion exists. But how do I determine what cast I need? '(System.Collections.IEnumerable)' obviously doesn't work. The type of 'ItemsSource' seems to be 'System.Windows.Controls.ItemsControl'. But cast (System.Windows.Controls.ItemsControl) doesn't work either. I have no idea where else to look for an explanation of how to cast this DataTable to correct this error. Can you help me?


Solution

  • Try assign DefaultView of DataTable to ItemsSource.

    dataGrid.ItemsSource = myMySQL.DBDataSet.Tables[tblName].DefaultView;