J'ai une méthode:
private void DeletePuzzle(object param)
{
}
param est un System.Windows.Controls.SelectedItemCollection
, que j'ai obtenu d'une propriété ListView
de WPF SelectedItems
.
D'une certaine manière, je n'arrive pas à le convertir d'un objet en quelque chose d'utile. Je ne peux pas créer un System.Windows.Controls.SelectedItemCollection
en raison de son niveau de protection, et param ne sera pas converti en IList
, ICollection
ou IEnumerable
.
Comment puis-je parcourir les éléments de param?
Bon, je l'ai trié. J'ai continué d'essayer de le lancer comme
IList<PuzzleViewModel> collection = (IList<PuzzleViewModel>)param;
Ce qui m'a dit qu'il ne pouvait pas convertir de SelectedItemCollection en IList ...
C'est en fait ce que vous devez faire.
System.Collections.IList items = (System.Collections.IList)param;
var collection = items.Cast<PuzzleViewModel>();
du réflecteur: -
[Category("Appearance"), Bindable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public IList SelectedItems
{
get
{
return base.SelectedItemsImpl;
}
}
Les éléments sélectionnés de ListView est un IList, id comme pour voir la méthode d'appel.