Как отличить System.Windows.Controls.SelectedItemCollection?
У меня есть метод:
private void DeletePuzzle(object param)
{
}
param - это System.Windows.Controls.SelectedItemCollection
, который я получил из свойства WPF ListView
SelectedItems
.
Каким-то образом я не могу отличить его от объекта ни к чему полезному. Я не могу создать System.Windows.Controls.SelectedItemCollection
из-за его уровня защиты, а param не будет отбрасываться на IList
, ICollection
или IEnumerable
.
Как я могу перебирать элементы параметров?
Ответы
Ответ 1
Правильно, разобрался. Я продолжал пытаться использовать его как
IList<PuzzleViewModel> collection = (IList<PuzzleViewModel>)param;
Что мне сказал, что он не может конвертировать из SelectedItemCollection в IList...
Это на самом деле то, что вам нужно сделать.
System.Collections.IList items = (System.Collections.IList)param;
var collection = items.Cast<PuzzleViewModel>();
Ответ 2
от отражателя: -
[Category("Appearance"), Bindable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public IList SelectedItems
{
get
{
return base.SelectedItemsImpl;
}
}
Выбранные элементы ListView - это IList, id, чтобы видеть вызывающий метод.
Ответ 3
Проверьте тип:
System.Collections.Generic.IList<(Of <(ListViewDataItem>)>)