我有一个班级书和清单。我正在使用ListView显示我的列表,我想在按下按钮时删除所选项目。 这是我的方法:
private void currentlyReadingRemoveItem_Click(object sender, RoutedEventArgs e)
{
var selectedItems = CurrentlyReadingBooksListView.SelectedItems;
_currentlyReadingBooks.Except((List<Book>)selectedItems);
}
然而,我收到此错误:
System.InvalidCastException:'无法转换类型的对象 键入'System.Windows.Controls.SelectedItemCollection' 'System.Collections.Generic.List`1 [BookshelfLibrary.Book]''。
过去一小时我一直试图解决这个问题,我尝试了其他一些铸造方法,我甚至不知道还有什么,我太累了,无法思考。 这是整个项目:https://github.com/GoldenDragonPC/Bookshelf
提前谢谢。
编辑: 工作代码。
var selectedItems = CurrentlyReadingBooksListView.SelectedItems;
var test = _currentlyReadingBooks.Except(selectedItems.Cast<Book>());
_currentlyReadingBooks = test.ToList();
WriteData(_currentlyReadingBooks, CurrentlyReadingPath);
InitializeList();
答案 0 :(得分:0)
尝试使用linq的强制转换方法。类似的东西:
_currentlyReadingBooks.Except(selectedItems.Cast<Book>()?.ToList());
<强>更新强>
_currentlyReadingBooks = _currentlyReadingBooks.Except(selectedItems.Cast<Book>()).ToList();