我的DataGrid又出现了问题,这次:我在编辑单元格时如何关闭排序?
例如:
我添加标记为'A'的最后一个,它跳到顶部,因为列已排序。但它应该留在按钮上。如果您对设置文件进行排序(在Visual Studio中),它的工作方式与我想要的完全相同。您可以自己尝试,这是VS中的相同示例:
我尝试重置SortDirection
,但无效:
private void dgVATINS_BeginningEdit(object sender, DataGridBeginningEditEventArgs e)
{
foreach (DataGridColumn col in dgVATINS.Columns)
{
col.SortDirection = null;
}
}
答案 0 :(得分:0)
Helper.SetGridViewSortState(this.dgv,DataGridViewColumnSortMode.NotSortable); 请试试这个
答案 1 :(得分:0)
找到解决方案:
/// <summary>
/// Resets the sorting.
/// </summary>
public void ResetSorting()
{
ICollectionView view = CollectionViewSource.GetDefaultView(dgVATINS.ItemsSource); // Gets the default view of the DataGrid
if (view != null && view.SortDescriptions.Count > 0)
{
view.SortDescriptions.Clear(); // Clears the sorting
foreach (DataGridColumn column in dgVATINS.Columns)
{
column.SortDirection = null;
};
}
}
并从CollectionChanged
ObservableCollection<T>
事件添加事件处理程序
void VATINS_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
ResetSorting();
}