2

在 Silverlight 中,我的自定义控件位于UIElementCollection我的StackPanel. 我想按特定值获取它们的列表。只DivElements存在于容器中。Nothing当我知道我有一个或多个时它会返回。我知道我可以制作一个简单的循环并内联强制转换类型,但我想更好地使用LINQand Cast(Of TResult)。我的铸造尝试:

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

1 回答 1

2

问题是你不能转换List(Of DivElement). 该集合是一个UIElementCollection,而不是一个List(Of T)

不过,您可以建立一个新列表。这也可以通过使用OfType而不是手动转换来简化:

Dim myList = spDivs.Children.OfType(Of DivElement)()
                            .Where(Function(o) o.ElementParent Is bComm)
                            .ToList()
于 2013-08-07T17:21:56.913 回答