我有一个禁用排序的数据网格.我想要实现的是 - 通过单击列标题我想要选择此列中的所有单元格(选择整列).我已经添加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();
}
}
Run Code Online (Sandbox Code Playgroud)
我编辑了代码,上面的这个工作正常(感谢@nit).我更加关注DataGrid因为这是必要的.
这应该可以解决问题
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));
}
}
}
Run Code Online (Sandbox Code Playgroud)
确保你SelectionUnit="Cell"开启DataGrid
<DataGrid x:Name="dataGrid" AutoGenerateColumns="False" IsSynchronizedWithCurrentItem="True"
SelectionUnit="Cell" />
Run Code Online (Sandbox Code Playgroud)