在正常的WinForm应用程序中,您可以这样做:
DataTable dataTable = new DataTable(); dataTable = dataGridRecords.DataSource;
但是如何使用WPF数据网格呢?
dataTable = dataGridRecords.ItemsSource;
也不行.
在WPF中,你不这样做
DataGrid.ItemsSource = DataTable;
相反,你做
DataGrid.ItemsSource = DataTable.AsDataView();
为了获得DataTable,你可以做这样的事情
public static DataTable DataViewAsDataTable(DataView dv) { DataTable dt = dv.Table.Clone(); foreach (DataRowView drv in dv) dt.ImportRow(drv.Row); return dt; } DataView view = (DataView) dataGrid.ItemsSource; DataTable table = DataViewAsDataTable(view)
你不需要这个DataViewAsDataTable
方法.只需执行以下操作:
DataTable dt = ((DataView)dataGrid1.ItemsSource).ToTable();