如何从画布中删除标记的WPF对象?

  • 本文关键字:WPF 对象 删除 布中 c# wpf
  • 更新时间 :
  • 英文 :


下面的代码给了我以下错误:

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));

最新更新