c# - 如何通过 WPF 中的 DataGrid SelectedItems Linq?

标签 c# wpf linq

我正在尝试:

bool hasXItems = (grid.SelectedItems as IEnumerable<Y>).Any(i => ((Y) i).IsX);

这似乎不起作用(强制转换的结果是 null)。如何使用 Linq 查询 DataGrid.SelectedItems

这是我正在查询的属性:http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.multiselector.selecteditems(v=vs.90).aspx

最佳答案

我无法从你的评论中看出你想做什么,但你可以这样使用 LINQ。

DataGridRow[] results = datagrid.SelectedItems
                                .OfType<DataGridRow>()
                                .Where(x => ((bool)x.IsFocused))
                                .ToArray();

它将遍历所有选定的行并返回获得焦点的行。

这个查询有 4 个部分

  1. datagrid.SelectedItems .此行会将所有选定行作为列表给出,因为 SelectedItems 返回一个 IList 对象。

  2. .OfType<DataGridRow>() .此行将从第 1 行返回的所有选定行作为 DataGridRow 返回。

  3. .Where(x => ((bool)x.IsFocused)) .此行将遍历从第 2 行返回的所有 DataGridRow,以查找哪些行获得焦点。

  4. .ToArray() .该行会将第 3 行返回的所有聚焦的 DatagridRow 转换为 Array 并将其放入结果变量中。

关于c# - 如何通过 WPF 中的 DataGrid SelectedItems Linq?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10636918/

相关文章:

c# - 是什么原因导致 "ConvertResourcesCases"意外失败?

wpf - 如何设置 WPF FlowDocument 的原始宽度

.net - LINQ 查询的索引

c# - LINQ 加入两个数据表

c# - 无法在 C# 中使用 Sendkeys 发送下划线?

c# - C# 中的对象事务

c# - wpf 命令控制可见性

c# - WPF 交互触发 MouseDoubleClick 事件未触发

c# - 连接 Entity Framework 中的两个表

c# - Watin ApartmentState.STA 线程和父线程之间的共享变量?