私には方法があります:
private void DeletePuzzle(object param)
{
}
paramはSystem.Windows.Controls.SelectedItemCollection
で、WPF ListView
のSelectedItems
プロパティから取得しました。
どういうわけか、オブジェクトから有用なものにキャストできないようです。保護レベルが原因でSystem.Windows.Controls.SelectedItemCollection
を作成できません。また、paramがIList
、ICollection
またはIEnumerable
にキャストされません。
Paramのアイテムをどのように反復できますか?
そう、それを分類しました。私はそれを次のようにキャストしようとし続けました
IList<PuzzleViewModel> collection = (IList<PuzzleViewModel>)param;
SelectedItemCollectionからIListに変換できないと言われました...
これは実際に行う必要があることです。
System.Collections.IList items = (System.Collections.IList)param;
var collection = items.Cast<PuzzleViewModel>();
リフレクターから:-
[Category("Appearance"), Bindable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public IList SelectedItems
{
get
{
return base.SelectedItemsImpl;
}
}
ListViewの選択された項目はIListであり、呼び出し元のメソッドを表示するIDのようなものです。