2014-12-22 9 views
1

한 목록 상자에서 항목을 충분히 단순한와의 인터페이스를 이동 :올바른 방법

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의 의도 된 사용 무엇 : 제안은

enter image description here

?

+1

기본 클래스 –

답변

1

여러 항목에 대해 올바른 방법은 무엇입니까?

SelectedObjectCollectionIList<T>을 구현하지 않습니다. 당신은 단지 그것을 던질 수 없습니다. 그들 모두 같은 IList의이 ListBox.SelectedObjectCollection와`IList의 ` 대신 당신은 당신의 유형에 모든 항목을 캐스팅 Cast 방법을 사용하여 목록에 넣을 수 사이에는 관계가 없다

myListBop.SelectedItems.Cast<myClass>().ToList(); 
+0

"결과"를 단순히 사용할 수 있습니까? "IEnumerable" – chrispepper1989

+0

@ chrispepper1989 결과를 반복 할 때까지 캐스트가 실행되지 않습니다. ToList가 반복을 수행합니다. 결과를 즉시 열거하지 않으려면 ToList를 제거 할 수 있습니다. –