如何投射一个System.Windows.Controls.SelectedItemCollection?

我有一个方法:

private void DeletePuzzle(object param) { } 

param是一个System.Windows.Controls.SelectedItemCollection ,我从WPF的ListViewSelectedItems财产。

不知何故,我似乎无法将它从一个对象转换为任何有用的东西。 我不能创build一个System.Windows.Controls.SelectedItemCollection因为它的保护级别,参数不会强制转换为IListICollectionIEnumerable

我怎样才能迭代param的项目?

对,把它分类。 我一直试图把它像

 IList<PuzzleViewModel> collection = (IList<PuzzleViewModel>)param; 

这告诉我它不能从SelectedItemCollection转换为IList …

这实际上是你需要做的。

 System.Collections.IList items = (System.Collections.IList)param; var collection = items.Cast<PuzzleViewModel>(); 

从reflection器: –

 [Category("Appearance"), Bindable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public IList SelectedItems { get { return base.SelectedItemsImpl; } } 

ListView的选定项是一个IList,id喜欢看调用方法。

检查types: System.Collections.Generic.IList<(Of <(ListViewDataItem>)>)