wpf - ¿Cómo lanzar un System.Windows.Controls.SelectedItemCollection?
(3)
Bien, lo tengo solucionado. Seguí tratando de lanzarlo como
IList<PuzzleViewModel> collection = (IList<PuzzleViewModel>)param;
Lo que me dijo que no se podía convertir de SelectedItemCollection a IList ...
Esto es, de hecho, lo que necesitas hacer.
System.Collections.IList items = (System.Collections.IList)param;
var collection = items.Cast<PuzzleViewModel>();
Tengo un método:
private void DeletePuzzle(object param)
{
}
param es un System.Windows.Controls.SelectedItemCollection
, que obtuve de la propiedad SelectedItems
de un WPF ListView
.
De alguna manera, parece que no puedo lanzarlo de un objeto a algo útil. No puedo crear un System.Windows.Controls.SelectedItemCollection
debido a su nivel de protección, y param no se IEnumerable
a IList
, ICollection
o IEnumerable
.
¿Cómo puedo iterar a través de los elementos de param?
Compruebe el tipo: System.Collections.Generic.IList<(Of <(ListViewDataItem>)>)
del reflector: -
[Category("Appearance"), Bindable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public IList SelectedItems
{
get
{
return base.SelectedItemsImpl;
}
}
Los elementos seleccionados de ListView son un ID de IList, como para ver el método de llamada.