wpf求大神指教DataGrid!!!

wpf求大神指教DataGrid!!!,第1张

1首先在DataGrid列头增加一个CheckBox

   <DataGrid x:Name="MODataGrid"  AlternationCount="1" >

                <DataGridColumns>

                    <DataGridCheckBoxColumn CanUserResize="False" CanUserSort="False" CanUserReorder="False" IsReadOnly="True" Width="24" >

                        <DataGridCheckBoxColumnHeaderTemplate >

                            <DataTemplate>

                                <CheckBox x:Name="HeaderCB" Click="CheckBox_Click" HorizontalAlignment="Stretch"    VerticalAlignment="Stretch" Tag="{Binding Id}" Margin="-1,0,0,0"/>

                            </DataTemplate>

                        </DataGridCheckBoxColumnHeaderTemplate>

                        <DataGridCheckBoxColumnCellStyle >

                            <Style  >

                                <Setter Property="FrameworkElementVerticalAlignment"  Value="Center" />

                                <Setter Property="FrameworkElementHorizontalAlignment"  Value="Center" />

                            </Style>

                        </DataGridCheckBoxColumnCellStyle>

                    </DataGridCheckBoxColumn>

                </DataGridColumns>

     </DataGrid>

2在上面中注册的Click事件(Click="CheckBox_Click" ),在事件里实现将DataGrid的全选和其它 功能实现:

        //  全选CheckBox事件

        private void CheckBox_Click(object sender, RoutedEventArgs e)

        {

            selectedMOListClear();//添加所选择的行索引。

            CheckBox headercb = (CheckBox)sender;

            if (headercbIsChecked == true)

                MOCountLabelContent = MODataGridItemsCount;

            else

                MOCountLabelContent = 0;

            //将列表中的其它行也勾选或取消勾选

            for (int i = 0; i < MODataGridItemsCount - 1; i++)

            {

                //获取行  

                DataGridRow neddrow = (DataGridRow)MODataGridItemContainerGeneratorContainerFromIndex(i);

                //获取该行的某列,即该行单元格

                CheckBox cb = (CheckBox)MODataGridColumns[0]GetCellContent(neddrow);

                cbIsChecked = headercbIsChecked;//将列头Check状态传递给下面某个checkbox

                if (headercbIsChecked == true)

                {

                    selectedMOListAdd(i);//将索引添加到List中。

                }

            }

        }

其它CheckBox的勾选可以上面的CheckBox_Click()的方法去实现。

希望能帮到你。

// 变量

DataTable dtable =new DataTable(); //中间接收表

DataRow row; //定义行

变量dt 为DatagridView1的数据源

事件代码

Button_Click事件中代码

dtable = dtClone(); //先让中间表数据列DatagridView1的表的数据列相同

foreach (DataGridViewRow Row in dataGridView1Rows) //DataGridView全部行

{

//判断是否选中

if (RowCells["Checked"]Value!= null && (bool)RowCells["Checked"]Value!= false)

{

// ["Checked"]为勾选列的列名

DataRowView drv = RowDataBoundItem as DataRowView; //获取行中所有数据

row = (DataRow)drvRow; //将dgv行中数据添加到定义行中

dtableRowsAdd(rowItemArray); //添加就可以了。

}

else

{

continue;//继续找

}

}

dataGridView2DataSource = dtable; //最后绑定就行了

看看是不是你想要的。如果是就给分,不是的话 咱们还可以再加鈡嘛。

以上就是关于wpf求大神指教DataGrid!!!全部的内容,包括:wpf求大神指教DataGrid!!!、C#如何将DataGirdView1中勾选中checkbox多行 添加到另一个DatagridView2中急用要用代码。、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9508065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存