在WPF DataGrid中转换和使用DataTable?

Pri*_*lia 11 c# wpf datagrid

在正常的WinForm应用程序中,您可以这样做:

DataTable dataTable = new DataTable();
dataTable = dataGridRecords.DataSource;
Run Code Online (Sandbox Code Playgroud)

但是如何使用WPF数据网格呢?

dataTable = dataGridRecords.ItemsSource;
Run Code Online (Sandbox Code Playgroud)

也不行.

Har*_*san 38

在WPF中,你不这样做

DataGrid.ItemsSource = DataTable;
Run Code Online (Sandbox Code Playgroud)

相反,你做

 DataGrid.ItemsSource = DataTable.AsDataView();
Run Code Online (Sandbox Code Playgroud)

为了获得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)
Run Code Online (Sandbox Code Playgroud)


小智 5

你不需要这个DataViewAsDataTable方法.只需执行以下操作:

DataTable dt = ((DataView)dataGrid1.ItemsSource).ToTable();