71

我有一个方法:

private void DeletePuzzle(object param) 
{
}

参数是 a System.Windows.Controls.SelectedItemCollection,我从 WPFListViewSelectedItems属性中获得。

不知何故,我似乎无法将它从一个对象转换为任何有用的东西。由于其保护级别,我无法创建 a System.Windows.Controls.SelectedItemCollection,并且 param 不会转换为IList,ICollectionIEnumerable.

如何遍历 param 的项目?

4

3 回答 3

133

对了,整理好了。我一直试图把它像

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

这告诉我它无法从 SelectedItemCollection 转换为 IList ......

这实际上是您需要做的。

System.Collections.IList items = (System.Collections.IList)param;
var collection = items.Cast<PuzzleViewModel>();
于 2009-12-10T03:24:29.580 回答
1

从反射器:-

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

ListView的Selected Items是一个IList,id喜欢看调用方法。

于 2009-12-10T00:51:01.130 回答
-6

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

于 2009-12-10T00:46:58.790 回答