【问题标题】:Improve Linq query when sorting UWP DataGrid对 UWP DataGrid 排序时改进 Linq 查询
【发布时间】:2021-12-13 06:27:52
【问题描述】:

我按照How to: Group, sort and filter data in the DataGrid Control 的示例在 UWP DataGrid 中实现了排序

列排序事件使用数据列标题中的 Tag 来运行特定的 Linq 查询,例如 Tag=“Country”。

我假设的数据网格有 3 个字段“Country”、“Name”、“Height”,因此为了对所有 3 个字段添加排序,我需要复制逻辑并仅使用“orderby 字段”查询每个字段”与众不同。有没有更好的解决方案?

if (e.Column.Tag.ToString() == "Country") 
{
  mydg.ItemsSource = new ObservableCollection<Mountain>(
  from item in myData
  orderby item.Country ascending 
  select item);
 }

【问题讨论】:

  • 如前所述,SO上有很多实现,mine also

标签: linq uwp datagrid


【解决方案1】:

看看Dynamic LINQ OrderBy on IEnumerable<T> / IQueryable<T>

您可以构建基本的IQueryable&lt;&gt;,根据用户选择的排序首选项动态应用排序,然后将生成的查询作为ItemSource 传递。

【讨论】:

  • 谢谢。我看过了。讨论中有一些优点和缺点,有人说需要 29 毫秒。我不知道这是否比我的冗余代码更快,但大多数代码有点陈旧,我真的不想构建自定义 ORM 包装器。但我会尝试一下。
猜你喜欢
  • 1970-01-01
  • 2016-10-27
  • 1970-01-01
  • 2022-12-01
  • 1970-01-01
  • 2011-09-25
  • 1970-01-01
  • 2011-10-31
  • 1970-01-01
相关资源
最近更新 更多