Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在WPF中通过DataGrid SelectedItems进行Linq?_C#_Wpf_Linq - Fatal编程技术网

C# 如何在WPF中通过DataGrid SelectedItems进行Linq?

C# 如何在WPF中通过DataGrid SelectedItems进行Linq?,c#,wpf,linq,C#,Wpf,Linq,我正在努力做到: bool hasXItems = (grid.SelectedItems as IEnumerable<Y>).Any(i => ((Y) i).IsX); bool hasXItems=(grid.SelectedItems作为IEnumerable).Any(i=>((Y)i).IsX); 这似乎不起作用(强制转换的结果是null)。如何使用Linq查询数据网格。选择editems 这就是我要查询的属性:我无法从你的评论中看出你想做什么,但你可以这样使

我正在努力做到:

bool hasXItems = (grid.SelectedItems as IEnumerable<Y>).Any(i => ((Y) i).IsX);
bool hasXItems=(grid.SelectedItems作为IEnumerable).Any(i=>((Y)i).IsX);
这似乎不起作用(强制转换的结果是
null
)。如何使用Linq查询
数据网格。选择editems


这就是我要查询的属性:

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

DataGridRow[] results = datagrid.SelectedItems
                                .OfType<DataGridRow>()
                                .Where(x => ((bool)x.IsFocused))
                                .ToArray();
DataGridRow[]results=datagrid.SelectedItems
第()类
.其中(x=>((bool)x.IsFocused))
.ToArray();
它将遍历所有选定的行并返回聚焦的行

此查询有4个部分

  • datagrid。选择editems
    。此行将以列表形式给出所有选定行,因为SelectedItems返回一个IList对象

  • .OfType()
    。此行将以DataGridRow的形式返回从第1行返回的所有选定行

  • 。其中(x=>((bool)x.IsFocused))
    。此行将遍历从第2行返回的所有DataGridRows,以查找哪些行是重点行

  • .ToArray()
    。此行将把第3行返回的所有DatagridRows转换为Array,并将其放入results变量中

  • 如果.IsX()的意思是“is X”

    grid.SelectedItems.OfType().Any();
    
    否则,

    grid.SelectedItems.OfType().Any(item=>item.IsX());
    
    您想使用LINQ了解什么?我想知道所选项目是否具有特定属性,即
    true
    。OfType()
    正是我想要的!是的,只有这个“最小超时”。