我有这样的课程
public class Foo
{
public string prop1 {get;set;}
public string prop1 {get;set;}
}
以及具有List<Foo>
的视图模型,此列表用作一个Bind
的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();
所有这些方式都可以编译,但在运行时会引发异常。
正确的铸造方法是什么?
NOTE: DataGrid
的基本类型是ObservableCollection
,这有什么区别吗?
然后确保使用System.Linq
命名空间:
尝试一下:
这里是一个示例,当用户取消选择列表框中的元素时,该示例用于删除项目。