При взаимодействии с одним элементом в списке, его достаточно просто:
myClass citem = (myClass)myListBop.SelectedItem.
viewModel.doSomethingWithItem(cItem)
Каков правильный способ для нескольких элементов? Я видел примеры простого копирования данных в список, но, конечно же, лучше было бы избежать копирования и пойти для правильного перевода? Resharper любезно сообщает мне, что я могу что-то делать неправильно:
Где предложение:
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?
Каков правильный способ для нескольких элементов?
SelectedObjectCollection
не реализует IList<T>
. вы не можете просто бросить его. Вместо этого вы можете использовать метод Cast
чтобы отображать все элементы в ваш тип и помещать их в список:
myListBop.SelectedItems.Cast<myClass>().ToList();
IList<MyClass>
Оба они имеют IList в качестве базового класса