Как преобразовать 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>)>)

Другие вопросы по тегам