下面的代码给了我以下错误:
CS1061 UIElementCollection不包含Where和的定义的第一个参数类型UIElementCollection可以找到(您是否缺少一个using指令还是程序集引用?)
var object = main.Children.Where(c => "platform1".Equals(c.Tag)).First();
main.Children.Remove(object);
如何让它工作?
Children
属性类型UIElementCollection
不实现通用接口IEnumerable<T>
,所以你不能像Where
那样使用它作为Enumerable
扩展方法的源。
必须添加一个类型强制转换方法,如
var obj = main.Children.Cast<UIElement>().Where(...);
由于您还想访问FrameworkElement
子类的Tag
属性,请使用以下内容:
var obj = main.Children
.OfType<FrameworkElement>()
.Where(c => "platform1".Equals(c.Tag))
.First();
或短:
var obj = main.Children
.OfType<FrameworkElement>()
.First(c => "platform1".Equals(c.Tag));