zoukankan      html  css  js  c++  java
  • WPF DataGrid使用DataTable为数据源,添加CheckBox列使用Delete删除行的方法

    首先将CanUserDeleteRows设置为False,

    其次是设置KeyUp事件

    并自定义DataGrid.Columns修改如下

     <DataGrid  x:Name="DG" KeyUp="DG_KeyUp"    ItemsSource="{Binding }" CanUserDeleteRows="False"     AutoGenerateColumns="True">
                <DataGrid.Columns>
                    <DataGridCheckBoxColumn   Header="SingleCheckBox">
                        <DataGridCheckBoxColumn.CellStyle>
                            <Style  TargetType="DataGridCell">
                                <Setter Property="ContentTemplate" >
                                    <Setter.Value>
                                        <DataTemplate>
                                            <CheckBox x:Name="CB"  Click="CB_Click"/>
                                        </DataTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>
                        </DataGridCheckBoxColumn.CellStyle>
                    </DataGridCheckBoxColumn>
                </DataGrid.Columns>
            </DataGrid>

    在CS页面修改:

    定义一个List<DataRow> dataRow 集合用来存储DataTable的Row

    修改CheckBox的Click事件

    如下

            //数据源
     public DataTable dataTable;
    public List<DataRow> dataRow = new List<DataRow>(); private void CB_Click(object sender, RoutedEventArgs e) { if (DG.SelectedItem != null) { var row = DG.SelectedItem as DataRowView; dataRow.Add(row.Row); } }

    修改DataGrid的KeyUp事件如下

    private void DG_KeyUp(object sender, KeyEventArgs e)
            {
                if(e.Key==Key.Delete)
                {
                    if (dataRow.Count> 0)
                    {
                        for (var item = 0; item < dataRow.Count; item++)
                        {
                            dataTable.Rows.Remove(dataRow[item]);
                   
                        }
                        dataRow.Clear();
                         
                    } 
                }
            }

    最终截图

  • 相关阅读:
    justep w模型检查正常,编译出错
    php get post 发送与接收
    编译原理正则文本与有限状态机
    编译原理前端技术
    lucene早期版本基本概念
    golang panic和defer
    2021年1月阅读文章
    elasticsearch 中的fielddata 和 doc_values
    golang中的树
    elasticsearch中的wildcard
  • 原文地址:https://www.cnblogs.com/T-ARF/p/11358473.html
Copyright © 2011-2022 走看看