关闭DataGridColumn排序

时间:2014-11-14 16:28:00

标签: c# wpf sorting datagrid sortdirection

我的DataGrid又出现了问题,这次:我在编辑单元格时如何关闭排序?

例如:

enter image description here

我添加标记为'A'的最后一个,它跳到顶部,因为列已排序。但它应该留在按钮上。如果您对设置文件进行排序(在Visual Studio中),它的工作方式与我想要的完全相同。您可以自己尝试,这是VS中的相同示例: enter image description here

我尝试重置SortDirection,但无效:

    private void dgVATINS_BeginningEdit(object sender, DataGridBeginningEditEventArgs e)
    {
        foreach (DataGridColumn col in dgVATINS.Columns)
        {
            col.SortDirection = null;
        }
    }

2 个答案:

答案 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();
 }