Csharp/C#教程:WPF Datagrid:清除列排序分享


WPF Datagrid:清除列排序

我在我的应用程序中使用WPF Datagrid,可以通过单击标题对列进行排序。

我想知道是否有任何方法可以以编程方式清除列的排序?

我尝试对列进行排序,然后清除MyDataGrid.Items.SortDescriptions ,但该集合为空(即使已对一列进行了排序)。

我也尝试过:

 MyDataGridColumn.SortDirection = null; 

问题是列指示消失了,但是在编辑单元格和切换行时仍然会发生排序。

有没有办法清除列的排序?

编辑(为清晰起见):问题是如果用户重新点击相同的列标题,我想再次允许排序,因此将CanUserSort设置为false会有问题,即使它是在XAML中完成的。 简而言之,我正在尝试做的是,一旦已排序的列具有已修改的单元格,就会阻止对行进行排序。 我想强制用户重新点击标题。

这是你需要的:

 using System.Windows.Data; using System.ComponentModel; ICollectionView view = CollectionViewSource.GetDefaultView(grid.ItemsSource); if (view != null) { view.SortDescriptions.Clear(); foreach (DataGridColumn column in grid.Columns) { column.SortDirection = null; } } 

原始来源: https : //stackoverflow.com/a/9533076/964053

我想知道的是M $想要不放置ClearSort()方法…

为所有列设置CanUserSortfalse

 foreach (var a in MyDataGrid.Columns) { a.CanUserSort = false; } 

在XAML中,您可以使用此代码将其关闭。

  

这是我在我的程序中使用的(我有一个RESET按钮并使用它来清除数据网格上的排序)。

 System.Windows.Data.CollectionViewSource.GetDefaultView(MY_DATA_GRID.ItemsSource).SortDescriptions.Clear(); 

奇迹般有效。

干杯,Iato

在DataGrid的XAML代码中,您可以添加CanUserSortColumns =“False”。 然后noboady可以在朗姆酒时对任何专栏进行排序。

这是一个禁用DataGridView排序的小代码片段。

上述就是C#学习教程:WPF Datagrid:清除列排序分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 for (int i = 0; i < dataGridView1.ColumnCount; i++) { dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/983740.html

(0)
上一篇 2021年12月19日
下一篇 2021年12月19日

精彩推荐