Правильный способ взаимодействия с 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();