WPF中DataGrid中的DataGridCheckBoxColumn用法(全选,全否,反选)

来源:互联网 发布:淘宝3c证书编号怎么写 编辑:程序博客网 时间:2024/06/15 05:56

前台代码

 <DataGrid.Columns>                    <DataGridCheckBoxColumn Header="选择" Binding="{Binding Path=RUID}" x:Name="cRUID"></DataGridCheckBoxColumn>                    <DataGridTextColumn Header="结算类型" Binding="{Binding Path=CTYP}" x:Name="cCTYP" IsReadOnly="True" ></DataGridTextColumn>     </DataGrid.Columns>

1
2
3
4
5
6
7
8
后台:c#代码

    ///    /// 全选    ///    ///    ///    private void btnQuanXuan_Click(object sender, RoutedEventArgs e)    {        for (int i = 0; i < this.dgList.Items.Count; i++)        {            var cntr = dgList.ItemContainerGenerator.ContainerFromIndex(i);            DataGridRow ObjROw = (DataGridRow)cntr;            if (ObjROw != null)            {                FrameworkElement objElement = dgList.Columns[0].GetCellContent(ObjROw);                if (objElement != null)                {                    //if (objElement.GetType().ToString().EndsWith("cRUID"))                    //{                        System.Windows.Controls.CheckBox objChk = (System.Windows.Controls.CheckBox)objElement;                        if (objChk.IsChecked == false)                        {                            objChk.IsChecked = true;                        }                    //}                }            }        }    }

///
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/// 全否

/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnQuanFou_Click(object sender, RoutedEventArgs e){    for (int i = 0; i < this.dgList.Items.Count; i++)    {        var cntr = dgList.ItemContainerGenerator.ContainerFromIndex(i);        DataGridRow ObjROw = (DataGridRow)cntr;        if (ObjROw != null)        {            FrameworkElement objElement = dgList.Columns[0].GetCellContent(ObjROw);            if (objElement != null)            {                //if (objElement.GetType().ToString().EndsWith("cRUID"))                //{                System.Windows.Controls.CheckBox objChk = (System.Windows.Controls.CheckBox)objElement;                if (objChk.IsChecked == true)                {                    objChk.IsChecked = false;                }                //}            }        }    }}/// <summary>/// 反选/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnFanXuan_Click(object sender, RoutedEventArgs e){    for (int i = 0; i < this.dgList.Items.Count; i++)    {        var cntr = dgList.ItemContainerGenerator.ContainerFromIndex(i);        DataGridRow ObjROw = (DataGridRow)cntr;        if (ObjROw != null)        {            FrameworkElement objElement = dgList.Columns[0].GetCellContent(ObjROw);            if (objElement != null)            {                //if (objElement.GetType().ToString().EndsWith("cRUID"))                //{                System.Windows.Controls.CheckBox objChk = (System.Windows.Controls.CheckBox)objElement;                if (objChk.IsChecked == false)                {                    objChk.IsChecked = true;                }                else                {                    objChk.IsChecked = false;                }                //}            }        }    }}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
使用模板列全选:

前台代码:

<DataGridCheckBoxColumn Binding="{Binding Path=RUID,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGridRow}}}" x:Name="cRUID">                    <DataGridCheckBoxColumn.HeaderTemplate>                        <DataTemplate>                        <CheckBox x:Name="ckbSelectedAll" Content="全选" Checked="ckbSelectedAll_Checked" Unchecked="ckbSelectedAll_Unchecked" IsChecked="False"  />                        </DataTemplate>                    </DataGridCheckBoxColumn.HeaderTemplate>                </DataGridCheckBoxColumn>              

1
2
3
4
5
6
7
8
后台 c#代码

:

////// 全选/////////private void ckbSelectedAll_Checked(object sender, RoutedEventArgs e){    this.dgList.SelectAll();}////// 全不选/////////private void ckbSelectedAll_Unchecked(object sender, RoutedEventArgs e){    this.dgList.UnselectAll();}
原创粉丝点击