wpf DataGrid 删除多行
各位老师好!
在界面上添加一个DataGrid控件,绑定一个DataTable数据源。
this.datagrid.ItemsSource = table.DefaultView;
这种绑定,完全能将dataTable的数据显示在dataGrid上。这个没有问题。我在DataGrid第一列添加一项CheckBox
xaml 文件清单如下:
<DataGrid HorizontalAlignment="Left" Margin="12,71,0,150" Name="datagrid" Width="853" CanUserAddRows="false" AutoGenerateColumns="True" LayoutUpdated="datagrid_LayoutUpdated" Loaded="datagrid_Loaded" >
<DataGrid.Columns>
<DataGridTemplateColumn Header="选择">
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate />
</DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox Checked="CheckBox_Checked" Tag="{Binding Path= id}" Name="select"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
我想删除复选框选中的行,
遍历datagrid然后删除的代码是:
foreach (var item in datagrid.Items)
{
DataGridTemplateColumn templeColumn = datagrid.Columns[0] as DataGridTemplateColumn;
FrameworkElement s = datagrid.Columns[0].GetCellContent(item);
DataView view = new DataView();
System.Windows.Controls.CheckBox cb = templeColumn.CellTemplate.FindName("select", s) as System.Windows.Controls.CheckBox;
if (cb.IsChecked == true)
{
System.Windows.MessageBox.Show(Convert.ToString(cb.Tag));
datagrid.Items.Remove(item);
}
}
最后的问题,在运行到 datagrid.Items.Remove(item); 出现异常。具体异常信息:
{"Operation is not valid while ItemsSource is in use. Access and modify elements with ItemsControl.ItemsSource instead."}
请问诸位老师,怎么解决这个问题。多谢了!!
[解决办法]
http://go4answers.webhost4life.com/Example/removing-all-items-databound-listview-172040.aspx