wpf求大神指教DataGrid!!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf求大神指教DataGrid!!!相关的知识,希望对你有一定的参考价值。
点击全选下面的会根据一起全选,求解决方法,急,虽然下面会一起全选但是不影响功能!!点击下面上面也会根据一起全选
参考技术A1.首先在DataGrid列头增加一个CheckBox.
<DataGrid x:Name="MODataGrid" AlternationCount="1" ><DataGrid.Columns>
<DataGridCheckBoxColumn CanUserResize="False" CanUserSort="False" CanUserReorder="False" IsReadOnly="True" Width="24" >
<DataGridCheckBoxColumn.HeaderTemplate >
<DataTemplate>
<CheckBox x:Name="HeaderCB" Click="CheckBox_Click" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Tag="Binding Id" Margin="-1,0,0,0"/>
</DataTemplate>
</DataGridCheckBoxColumn.HeaderTemplate>
<DataGridCheckBoxColumn.CellStyle >
<Style >
<Setter Property="FrameworkElement.VerticalAlignment" Value="Center" />
<Setter Property="FrameworkElement.HorizontalAlignment" Value="Center" />
</Style>
</DataGridCheckBoxColumn.CellStyle>
</DataGridCheckBoxColumn>
</DataGrid.Columns>
</DataGrid>
2.在上面中注册的Click事件(Click="CheckBox_Click" ),在事件里实现将DataGrid的全选和其它 功能实现:
// 全选CheckBox事件private void CheckBox_Click(object sender, RoutedEventArgs e)
selectedMOList.Clear();//添加所选择的行索引。
CheckBox headercb = (CheckBox)sender;
if (headercb.IsChecked == true)
MOCountLabel.Content = MODataGrid.Items.Count;
else
MOCountLabel.Content = 0;
//将列表中的其它行也勾选或取消勾选
for (int i = 0; i < MODataGrid.Items.Count - 1; i++)
//获取行
DataGridRow neddrow = (DataGridRow)MODataGrid.ItemContainerGenerator.ContainerFromIndex(i);
//获取该行的某列,即该行单元格
CheckBox cb = (CheckBox)MODataGrid.Columns[0].GetCellContent(neddrow);
cb.IsChecked = headercb.IsChecked;//将列头Check状态传递给下面某个checkbox.
if (headercb.IsChecked == true)
selectedMOList.Add(i);//将索引添加到List中。
其它CheckBox的勾选可以上面的CheckBox_Click()的方法去实现。
希望能帮到你。
Excel如何制作这个WBS分解表格,求大神指教
Excel制作WBS分解表格可以采用创建组的方式实现:
参考技术A Excel做比较麻烦,可能需要配合代码,自带不太可能 参考技术B 你这个截图是用project做的,可以试一下以上是关于wpf求大神指教DataGrid!!!的主要内容,如果未能解决你的问题,请参考以下文章
wpf datagrid中添加一列checkbox,反复点选,会出现checkbox框偏移,请wpf大神帮忙!