【问题标题】:Cast(Of ?) from UIElement来自 UIElement 的 Cast(Of ?)
【发布时间】:2013-08-07 17:17:28
【问题描述】:

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

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

【问题讨论】:

    标签: vb.net linq silverlight uielement


    【解决方案1】:

    问题是您不能转换成List(Of DivElement)。该集合是UIElementCollection,而不是List(Of T)

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

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

    【讨论】:

    • 我完全错过了OfType
    猜你喜欢
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    • 2023-04-09
    • 2014-02-08
    • 2011-04-09
    • 1970-01-01
    相关资源
    最近更新 更多