В 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)