WPF中对datagrid删除选中的某一行。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF中对datagrid删除选中的某一行。相关的知识,希望对你有一定的参考价值。
前台:
<DataGrid Name="dgv" RowHeaderWidth="0" HorizontalAlignment="Left" Margin="214,206,0,0" VerticalAlignment="Top" Height="514" Width="856" AutoGenerateColumns="False" CanUserAddRows="False"> <DataGrid.Columns> <DataGridTemplateColumn Header="选择"> <DataGridTemplateColumn.CellEditingTemplate> <DataTemplate /> </DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate> <DataTemplate> <CheckBox Tag="Binding Path= ID" Name="select"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn>
<DataGridTextColumn Binding="Binding ID" Header="序号" Width="40"/> <DataGridTextColumn Binding="Binding Name" Header="姓名" Width="40"/> <DataGridTextColumn Binding="Binding Sex" Header="性别" Width="40" /> <DataGridTextColumn Binding="Binding Age" Header="年龄" Width="40"/> <DataGridTextColumn Binding="Binding Jycd" Header="教育程度" Width="80"/> <DataGridTextColumn Binding="Binding Hy" Header="婚否" Width="40"/> <DataGridTextColumn Binding="Binding Zy" Header="职业" Width="80"/> <DataGridTextColumn Binding="Binding XM" Header="训练项目" Width="100"/> <DataGridTextColumn Binding="Binding HJ" Header="训练环境" Width=" 100"/> <DataGridTextColumn Binding="Binding SJ" Header="训练时间" Width=" 100"/> <DataGridTextColumn Binding="Binding Delta" Header="Delta" Width=" 100"/> </DataGrid.Columns> </DataGrid>
</StackPanel> <StackPanel> <Button Content="删除" Name="Del" Click="Del_Click"></Button> </StackPanel>
后台目前只绑定了数据库:我的Datagrid是用到了联合查询,分别两张表T_grxx、thinkgeardata。
我现在想实现勾选chexkbox ,点击一个删除按钮就能删除该行。 我是新手,尽量多写点代码给我参考,我的qq:269440542,在线等
DataTable嵌入DataGrid,DataTable可以通过Rows和Columns删除行和列
代码:
private void AddData_Click(object sender, RoutedEventArgs e)
DataRow dr = dt.NewRow();
for (int columIndex = 0; columIndex < dt.Columns.Count; columIndex++)
if (columIndex == 0)
dr[columIndex] = "第" + dt.Rows.Count.ToString() + "组";
else
dr[columIndex] = "";
//dr[columIndex] = dt.Rows.Count.ToString() + " - " + columIndex.ToString();
dt.Rows.Add(dr);
int newColumnIndex = 5;
//增加一列
private void AddColumn_Click(object sender, RoutedEventArgs e)
dt.Columns.Add(new DataColumn("" + newColumnIndex++));
for (int i = 0; i < dt.Rows.Count; i++)
if (i == 0)
dt.Rows[i][dt.Columns.Count - 1] = "A" + (newColumnIndex - 1).ToString();
else
dt.Rows[i][dt.Columns.Count - 1] = "";
//dt.Rows[i][dt.Columns.Count - 1] = i.ToString() + " - " + (newColumnIndex - 1).ToString();
dataGrid.ItemsSource = null;
dataGrid.ItemsSource = dt.DefaultView;
//删除一行
private void DeleteData_Click(object sender, RoutedEventArgs e)
if (dt.Rows.Count > 2)
if (dataGrid.SelectedIndex != -1 && dataGrid.SelectedIndex != 0 && dataGrid.SelectedIndex != dt.Rows.Count)
dt.Rows.RemoveAt(dataGrid.SelectedIndex);
else
dt.Rows.RemoveAt(dt.Rows.Count - 1);
参考技术A
简单说一下我的想法:
获取当前选中的行,选中行的序号那个列应该是唯一的.
在数据库中删除选中行的数据,
在刷新datagrid即可.
这些思路我也知道,但具体怎么写?能具体点吗?
WPF DataGrid 如何对选择的多行进行删除
参考技术A 。。 在WPF中也是一样的。。下面是一个解决方法。。。前提条件: 窗体中有一个名为datagrid1的DataGrid, 点击一个button, 进行删除多行数据的操作下面是主要代码:本回答被提问者采纳以上是关于WPF中对datagrid删除选中的某一行。的主要内容,如果未能解决你的问题,请参考以下文章
wpf datagrid绑定了数据 如果选中多行中怎么获取选中行的某列的值
WPF中添加一个Datagrid使用dataset双向绑定,在第一列中添加一列checkbox用来选择本行,