我有一个数据网格,它禁用了排序。我想要实现的是-通过单击一个列标题,我想选择该列中的所有单元格(选择整个列)。我已经将EventSetter添加到DataGridColumnHeader中,以便将某些方法绑定到Click事件,但我不知道该如何编写该方法。有什么想法吗?
我的代码:
private void columnHeaderClick(object sender, RoutedEventArgs e)
{
var columnHeader = sender as DataGridColumnHeader;
if (columnHeader != null)
{
if (dgDane.SelectedCells != null)
{
dgDane.SelectedCells.Clear();
}
foreach (var item in dgDane.Items)
{
dgDane.SelectedCells.Add(new DataGridCellInfo(item, columnHeader.Column));
}
dgDane.Focus();
}
}我编辑了代码,上面的代码运行良好(感谢@nit)。我为DataGrid添加了焦点,因为它是必要的。
发布于 2014-06-09 11:08:18
这应该能起作用
private void columnHeaderClick(object sender, RoutedEventArgs e)
{
var columnHeader = sender as DataGridColumnHeader;
if (columnHeader != null)
{
dataGrid.SelectedCells.Clear();
foreach (var item in dataGrid.Items)
{
dataGrid.SelectedCells.Add(new DataGridCellInfo(item,columnHeader.Column));
}
}
}确保将SelectionUnit="Cell"设置为DataGrid
<DataGrid x:Name="dataGrid" AutoGenerateColumns="False" IsSynchronizedWithCurrentItem="True"
SelectionUnit="Cell" /> https://stackoverflow.com/questions/24118781
复制相似问题