1)自动生成列 <DataGrid AutoGenerateColumns="True" Name="datagrid" CanUserAddRows="False" MouseDoubleClick="datagrid_MouseDoubleClick" /> 2)取消自动生成列,手动绑定到相应字段 <DataGrid AutoGenerateColumns="False" Name="datagrid" CanUserAddRows="False" MouseDoubleClick="datagrid_MouseDoubleClick"> <DataGrid.Columns> <DataGridTextColumn Header="编号" Binding="{Binding ID}"></DataGridTextColumn> <DataGridTextColumn Header="公司" Binding="{Binding CompanyName}"></DataGridTextColumn> <DataGridTextColumn Header="固定资产" Binding="{Binding FixedAssets}" Width ="*"></DataGridTextColumn> </DataGrid.Columns> </DataGrid> 最后一列设置Width ="*"是为了取消空白列。 (3)后台代码 private void Window_Loaded(object sender, RoutedEventArgs e) { datagrid.ItemsSource = AccessDAL.OleDbHelper.ExecuteDataTable("SELECT * from Customers").DefaultView; } //双击DataGrid,显示相应信息 private void datagrid_MouseDoubleClick(object sender, MouseButtonEventArgs e) { DataRowView row = datagrid.SelectedItem as DataRowView; MessageBox.Show(row["id"].ToString()); } //若是绑定到对象集合,如ObservableCollection<Employee>,代码以下: ObservableCollection<Employee> col; public EmployeeManage() { InitializeComponent(); col = new ObservableCollection<Employee>(); col.Add(new Employee() { Id = 1, Name = "Jim", Salary = 2500.50f }); col.Add(new Employee() { Id = 2, Name = "John", Salary = 2600.50f }); datagrid.ItemsSource = col; } private void datagrid_MouseDoubleClick(object sender, MouseButtonEventArgs e) { Employee emp=datagrid.SelectedItem as Employee; MessageBox.Show(emp.Id.ToString()); } (4)删除选中的多行数据 private void Delete_Click(object sender, RoutedEventArgs e) { for (int i = datagrid.SelectedItems.Count - 1; i >= 0; i--) { Good good = datagrid.SelectedItems[i] as Good; goods.Remove(good); } }