我有一个方法:
private void DeletePuzzle(object param)
{
}
param是System.Windows.Controls.SelectedItemCollection
,是我从WPF ListView
的{{1}}媒体获取的。
不知何故,我似乎无法将它从一个对象转换为任何有用的东西。由于其保护级别,我无法创建SelectedItems
,并且param不会转换为System.Windows.Controls.SelectedItemCollection
,IList
或ICollection
。
如何迭代param的项目?
答案 0 :(得分:103)
对,把它整理好了。我一直试图把它像
一样IList<PuzzleViewModel> collection = (IList<PuzzleViewModel>)param;
告诉我它无法从SelectedItemCollection转换为IList ...
这实际上是你需要做的。
System.Collections.IList items = (System.Collections.IList)param;
var collection = items.Cast<PuzzleViewModel>();
答案 1 :(得分:1)
来自反射器: -
[Category("Appearance"), Bindable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public IList SelectedItems
{
get
{
return base.SelectedItemsImpl;
}
}
ListView的Selected Items是一个IList,id就像看到调用方法一样。
答案 2 :(得分:-4)
检查类型:
System.Collections.Generic.IList<(Of <(ListViewDataItem>)>)