2013-08-07 39 views
2

在silverlight中,我的自定義控件位於我的StackPanelUIElementCollection中。我想通過特定的價值獲得他們的清單。容器中只有DivElements。當我知道我有一個或多個時,它返回Nothing。我知道我可以製作一個簡單的循環和內嵌類型,但我想用LINQCast(Of TResult)更好。我在鑄造嘗試:來自UIElement的Cast(Of?)

Dim myList = TryCast(spDivs.Children.Where(Function(o) DirectCast(o, DivElement).ElementParent Is bComm).Cast(Of DivElement)(), List(Of DivElement)) 

回答

2

問題是你不能List(Of DivElement)。該集合是UIElementCollection,而不是List(Of T)

雖然你可以建立一個新的列表。這也可以通過使用OfType而不是手動鑄造來簡化:

Dim myList = spDivs.Children.OfType(Of DivElement)() 
          .Where(Function(o) o.ElementParent Is bComm) 
          .ToList() 
+0

我完全錯過了'OfType'。 – OneFineDay

相關問題