Vb.net 从元素中铸造(的?)
在silverlight中,我的自定义控件位于我的Vb.net 从元素中铸造(的?),vb.net,linq,silverlight,uielement,Vb.net,Linq,Silverlight,Uielement,在silverlight中,我的自定义控件位于我的StackPanel的UIElementCollection中。我想通过一个特定的值得到它们的列表。容器中只有DivElements。当我知道我有一个或多个时,它返回Nothing。我知道我可以做一个简单的循环并内联转换类型,但我想通过LINQ和cast(Of TResult)做得更好。我尝试铸造: Dim myList = TryCast(spDivs.Children.Where(Function(o) DirectCast(o, DivEl
StackPanel
的UIElementCollection
中。我想通过一个特定的值得到它们的列表。容器中只有DivElements
。当我知道我有一个或多个时,它返回Nothing
。我知道我可以做一个简单的循环并内联转换类型,但我想通过LINQ
和cast(Of TResult)
做得更好。我尝试铸造:
Dim myList = TryCast(spDivs.Children.Where(Function(o) DirectCast(o, DivElement).ElementParent Is bComm).Cast(Of DivElement)(), List(Of DivElement))
问题是您不能强制转换到列表(DivElement)
。该集合是一个UIElementCollection
,而不是一个列表(共T个)
不过,你可以建立一个新的列表。这也可以通过使用类型的而不是手动强制转换来简化:
Dim myList = spDivs.Children.OfType(Of DivElement)()
.Where(Function(o) o.ElementParent Is bComm)
.ToList()
我完全错过了类型
的。