Cast Datagrid.SelectedItems集合到列表

问题描述 投票:17回答:3

我有这样的课程

public class Foo
{
    public string prop1 {get;set;}
    public string prop1 {get;set;}
}

以及具有List<Foo>的视图模型,此列表用作一个BindDataGrid,然后在后面的代码中,我需要获取Datagrid.SelectedItems集合并将其转换为List<Foo>

我尝试过的事情:

List<Foo> SelectedItemsList= (List<Foo>)DataGrid.SelectedItems;
// OR
object p = DataGrid.SelectedItems;
List<Foo> SelectedItemsList= ((IList)p).Cast<Foo>().ToList();

所有这些方式都可以编译,但在运行时会引发异常。

正确的铸造方法是什么?

NOTE: DataGrid的基本类型是ObservableCollection,这有什么区别吗?

c# wpf datagrid casting wpfdatagrid
3个回答
36
投票

然后确保使用System.Linq命名空间:


3
投票

尝试一下:


0
投票

这里是一个示例,当用户取消选择列表框中的元素时,该示例用于删除项目。

© www.soinside.com 2019 - 2024. All rights reserved.