加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 将Datagrid.SelectedItems集合转换为List

发布时间:2020-12-15 06:17:27 所属栏目:百科 来源:网络整理
导读:我有这样的课 public class Foo{ public string prop1 {get;set;} public string prop1 {get;set;}} 并且具有ListFoo的视图模型,该列表被用作一个DataGrid的绑定,然后在代码隐藏中,我需要获取Datagrid.SelectedItems集合并将其转换为ListFoo 我试过的事情:
我有这样的课
public class Foo
{
    public string prop1 {get;set;}
    public string prop1 {get;set;}
}

并且具有List&Foo>的视图模型,该列表被用作一个DataGrid的绑定,然后在代码隐藏中,我需要获取Datagrid.SelectedItems集合并将其转换为List&Foo>

我试过的事情:

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

所有这些方法都可以编译,但在运行时抛出异常.

什么是适当的方法来投射?

注意:DataGrid的基本类型是一个ObservableCollection,这样做有些不同吗?

解决方法

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

你应该可以使用:

List<Foo> SelectedItemsList = DataGrid.SelectedItems.Cast<Foo>().ToList();

或者如果您不太确定DataGrid.SelectedItems包含的内容:

List<Foo> SelectedItemsList = DataGrid.SelectedItems.OfType<Foo>().ToList()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读