Как преобразовать System.Windows.Controls.SelectedItemCollection?
У меня есть метод:
private void DeletePuzzle(object param)
{
}
Парам является System.Windows.Controls.SelectedItemCollection
, что я получил от WPF ListView
"s SelectedItems
имущество.
Почему-то я не могу бросить его из объекта во что-нибудь полезное. Я не могу создать System.Windows.Controls.SelectedItemCollection
из-за его уровня защиты, и параметр не будет брошен на IList
, ICollection
или же IEnumerable
,
Как я могу перебирать элементы param?
3 ответа
Хорошо, получил это отсортировано. Я продолжал пытаться разыграть это как
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, который хотел бы видеть вызывающий метод.
Проверьте тип:System.Collections.Generic.IList<(Of <(ListViewDataItem>)>)