我有一个xaml DataGrid,它有10列。我可以重新排序列,但我想阻止重新排序组内的列。
例如,用户可以将第9列重新排序为第5列(现在可以),但第9列不应允许拖动小于第4列。
我想限制基于显示索引的列重新排序。
我试图使用“ColumnReordering”事件,但无法找到拖放列的放置位置索引,因此我可以阻止它。your text
grid.ColumnReordering += Grid_ColumnReordering;
private void Grid_ColumnReordering(object sender, DataGridColumnReorderingEventArgs e)
{
object DropLocationIndicator = e.DropLocationIndicator;
object Dragindicator = e.DragIndicator;
// Drag column
var column = e.Column;
//find target display index and block it
if (targetdisplayindex > 4)
{
e.Cancel = false;
}
else
{
e.Cancel = true;
}
}
1条答案
按热度按时间nwsw7zdq1#
ColumnReordering
事件在目标显示索引已知之前引发。您可以使用它来存储原始的列索引,然后处理ColumnDisplayIndexChanged
以根据您的逻辑将列移回。就像这样: