71

私は方法を持っています:

private void DeletePuzzle(object param) 
{
}

param はSystem.Windows.Controls.SelectedItemCollection、 WPFListViewSelectedItemsプロパティから取得したものです。

どういうわけか、オブジェクトから有用なものにキャストできないようです。保護レベルが原因で を作成できずSystem.Windows.Controls.SelectedItemCollection、param はIList,ICollectionまたはにキャストされませんIEnumerable

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 に答える