本帖最后由 zheng.xiang 于 2017-9-27 14:06 编辑
为了实现复合表头,将DG原表头隐藏
追加了两行头
<c1:C1DataGrid.TopRows>
<c1ataGridColumnHeaderRow />
<c1ataGridColumnHeaderRow />
</c1:C1DataGrid.TopRows>
在后台进行合并
e.Merge(new DataGridCellsRange(dg1.GetCell(0, 4), dg1.GetCell(0, 5)));
需要合并的列没有问题,在不需要合并的列里出问题了
第一列是全选列
<c1ataGridCheckBoxColumn Binding="{Binding CRE_USER_ID}" Width="95">
<c1ataGridCheckBoxColumn.Header>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Width="68">
<TextBlock Margin="6,0,6,0" VerticalAlignment="Center" Text="全選択"/>
<CheckBox HorizontalAlignment="Left" IsHitTestVisible="True" VerticalAlignment="Center" Checked="CheckBox_Checked" Unchecked="CheckBox_Checked" />
</StackPanel>
</c1ataGridCheckBoxColumn.Header>
</c1ataGridCheckBoxColumn>
增加两列表头后,这个全选列头,出现在第二行里,而不是第一行
对这一列进行合并后
全选checkbox 这一列的Header,运行时,偶尔出现,偶尔不出现,
能否限定全选列增加到第一行
-------------
关于这个问题,我把<TextBlock Margin="6,0,6,0" VerticalAlignment="Center" Text="全選択"/>
<CheckBox HorizontalAlignment="Left" IsHitTestVisible="True" VerticalAlignment="Center" Checked="CheckBox_Checked" Unchecked="CheckBox_Checked" />
从dataGrid里拿出去了,放到上层的StackPanel里了
现在效果是这样,显示效果是没问题的。
只是实际上,这个checkbox是重叠在GRID上的。
不过,只要DATAGRID的位置是不可拖动的,这样倒是也行。
|