Правильный способ взаимодействия с SelectedItems (IList / SelectedObjectCollection) в Listbox (view -> viewmodel)

При взаимодействии с одним элементом в списке достаточно просто перейти:

  myClass citem = (myClass)myListBop.SelectedItem.
  viewModel.doSomethingWithItem(cItem)

Какой правильный путь для нескольких предметов? Я видел примеры простого копирования данных в список, но наверняка было бы лучше избежать копирования и перейти к правильному приведению? Решарпер любезно сообщает мне, что я могу делать что-то не так:

Где предложение:

Suspicious case: there is no type in the solution which is inherited from both "Sytem.Windows.Forms.ListBox.SelectedObjectCollection" and "System,Collections.Generic.IList<myClass>"

В основном, каково предполагаемое использование IList / SelectedObjectCollection?

1 ответ

Решение

Какой правильный путь для нескольких предметов?

SelectedObjectCollection не реализует IList<T>, ты не можешь просто разыграть это. Вместо этого вы можете использовать Cast Способ приведения всех предметов к вашему типу и помещения их в список:

myListBop.SelectedItems.Cast<myClass>().ToList();
Другие вопросы по тегам