This question already has an answer here:
How to select a child from an UIElementCollection where a property = some value?
(1 个回答)
3年前关闭。
我正在将 Silverlight 应用程序转换为 WPF。下面的代码没有编译,但它在 Silverlight 中编译:
XAML:
后面的代码:
在
添加了
如果我将
我究竟做错了什么?
(1 个回答)
3年前关闭。
我正在将 Silverlight 应用程序转换为 WPF。下面的代码没有编译,但它在 Silverlight 中编译:
XAML:
<Grid x:Name="Table">
</Grid>
后面的代码:
foreach (var uiElement in Table.Children
.Where(x => Grid.GetColumn((Border)x) == Table.ColumnDefinitions.Count() - 1))
{
//do something
}
在
Where
它说添加了
System.Linq
命名空间。如果我将
UIElementCollection
转换为 IList<object>
则它可以工作,但我收到警告:我究竟做错了什么?
最佳答案
在 Silverlight 中, UIElementCollection
实现 IEnumerable<T>
,但 WPF 中的 UIElementCollection
实现 IEnumerable
,而不是 IEnumerable<T>
。如果你想在这里使用 LINQ,你可以
使用 OfType<UIElement>()
作为选项:
foreach (var uiElement in Table.Children.OfType<UIElement>()
.Where(x => Grid.GetColumn((Border)x) == Table.ColumnDefinitions.Count() - 1))
{
//do something
}
关于c# - 在 UIElementCollection 上使用 Where 表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46647389/
10-13 02:02