2010-10-03 41 views
2

我有下面的代码检测特定点的LINQ - OfType <>未按预期

然后过滤他们是只有那些特定类型的下方在Silverlight应用程序的所有元素 - CardButton

IEnumerable<UIElement> elementsBeneathCursor = 
       VisualTreeHelper.FindElementsInHostCoordinates(new Point(xPosn, yPosn), Application.Current.RootVisual); 
      IEnumerable<CardButton> cardsBeneathCursor = elementsBeneathCursor.OfType<CardButton>(); 

即使当我在调试器中检查elementsBeneathCursor,我可以看到有型的2个元素CardButton 然而,当我应用OfType<>过滤器的结果列表为空

怎么回事?

回答

3

结果列表将不会实际上为空......但是如果这两个元素都不是CardButton,则序列将为空。请注意,OfType不会执行任何自定义转换,因此如果您期待这些发生,那可以解释它。

尝试通过未过滤的列表并打印出每个元素上调用GetType的结果,以查看究竟是什么

+0

ahh - 我正在哑巴。调试器中的source属性为null,我需要展开结果视图以枚举结果以便能够在调试器中显示它们 – ChrisCa 2010-10-03 12:49:20