Подтвердить что ты не робот

Как отличить 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.

Как я могу перебирать элементы параметров?

4b9b3361

Ответ 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>)>)