(1)自动生成列
(2)取消自动生成列,手动绑定到相应字段< DataGrid AutoGenerateColumns ="True" Name ="datagrid" CanUserAddRows ="False" MouseDoubleClick ="datagrid_MouseDoubleClick" />
< DataGrid AutoGenerateColumns ="False" Name ="datagrid" CanUserAddRows ="False" MouseDoubleClick ="datagrid_MouseDoubleClick" > < DataGrid.Columns > < DataGridTextColumn Header ="ID" Binding =" {Binding ID} " ></ DataGridTextColumn > < DataGridTextColumn Header ="Name" Binding =" {Binding Name} " ></ DataGridTextColumn > < DataGridTextColumn Header ="Info" Binding =" {Binding Info} " Width ="*" ></ DataGridTextColumn > </ DataGrid.Columns > </ DataGrid >
最后一列设置Width ="*"是为了取消空白列。
(3)后台代码
(4)删除选中的多行数据private void Window_Loaded( object sender, RoutedEventArgs e) { datagrid.ItemsSource = AccessDAL.OleDbHelper.ExecuteDataTable( " SELECT * from 表名 " ).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 = " 张三 " , Info = ********* }); col.Add( new Employee() { Id = 2 , Name = " 李四 " , Info = ********* }); datagrid.ItemsSource = col; } private void datagrid_MouseDoubleClick( object sender, MouseButtonEventArgs e) { Employee emp = datagrid.SelectedItem as Employee; MessageBox.Show(emp.Id.ToString()); }
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); } }