全选和多选的功能在DataGrid中使用的时候很多,以前我们都是创建CheckBox模板列,然后在后台中捕获ChecnkBox的选择情况来实现全选或多选.现在为了加快开发的速度,使用这个CheckBoxColumn列控件,可以很方便的实现多选或全选的功能.
        代码如下:
       
            }
        
        看过我前面几篇列控件介绍的朋友对上面的代码一定不会有什么问题.
        首先还是在DataGrid中引用这个列控件,方法和以前一样,这里就不多说了.
        然后看看具体的使用:
  1. 获得选择行的Index值
    为DataGrid创建自定义列控件(四)CheckBoxColumn chkColumn = (CheckBoxColumn)this.DataGrid1.Columns[0];
    为DataGrid创建自定义列控件(四)            
    foreach(object index in chkColumn.SelectIndexes)//SelectIndexes获得选择的Index值
                }
  2. 获得选择行的DataKeys值
    为DataGrid创建自定义列控件(四)CheckBoxColumn chkColumn = (CheckBoxColumn)this.DataGrid1.Columns[0];
    为DataGrid创建自定义列控件(四)            
    foreach(object index in chkColumn.SelectedDataKeys)//SelectedDataKeys获得选择的DataKeys值
                }
  3. 获得未选择行的Index值和获得未选择行的DataKeys值
    为DataGrid创建自定义列控件(四)CheckBoxColumn chkColumn = (CheckBoxColumn)this.DataGrid1.Columns[0];
    为DataGrid创建自定义列控件(四)            
    foreach(object index in chkColumn.UnSelectIndexes)
                }
  4. 全选/取消全选
    为DataGrid创建自定义列控件(四)foreach(DataGridItem item in this.DataGrid1.Items)
  5. 获得选择行的任意列的
    为DataGrid创建自定义列控件(四)            CheckBoxColumn chkColumn = (CheckBoxColumn)this.DataGrid1.Columns[0];
    为DataGrid创建自定义列控件(四)            
    foreach(object index in chkColumn.SelectIndexes)
                }

        基本的使用就介绍完了,都非常的简单.当然我们可以在这个列控件的基础上扩展新的功能,比如在Head加入全选/取消选择框

           

为DataGrid创建自定义列控件(四)if(itemType == ListItemType.Header)
        }

   

相关文章: