我正在尝试:
bool hasXItems = (grid.SelectedItems as IEnumerable<Y>).Any(i => ((Y) i).IsX);
这似乎不起作用(强制转换的结果是 null
)。如何使用 Linq 查询 DataGrid.SelectedItems
?
最佳答案
我无法从你的评论中看出你想做什么,但你可以这样使用 LINQ。
DataGridRow[] results = datagrid.SelectedItems
.OfType<DataGridRow>()
.Where(x => ((bool)x.IsFocused))
.ToArray();
它将遍历所有选定的行并返回获得焦点的行。
这个查询有 4 个部分
datagrid.SelectedItems
.此行会将所有选定行作为列表给出,因为 SelectedItems 返回一个 IList 对象。.OfType<DataGridRow>()
.此行将从第 1 行返回的所有选定行作为 DataGridRow 返回。.Where(x => ((bool)x.IsFocused))
.此行将遍历从第 2 行返回的所有 DataGridRow,以查找哪些行获得焦点。.ToArray()
.该行会将第 3 行返回的所有聚焦的 DatagridRow 转换为 Array 并将其放入结果变量中。
关于c# - 如何通过 WPF 中的 DataGrid SelectedItems Linq?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10636918/