UWP C#System.InvalidCastException

UWP C#System.InvalidCastException,c#,uwp,windows-iot-core-10,C#,Uwp,Windows Iot Core 10,我以前曾在一篇帖子上问过如何使用它。现在,我在按钮旁边添加了额外的图像,以指示客户端的连接状态。我有两个按钮一个用于添加,另一个用于删除按钮和图像。单击后,将出现一个菜单out,用于选择要删除的相应按钮。我的问题是我试图添加状态图像,但是当点击删除按钮时,菜单出现异常,显示系统。无效异常 我的代码如下; 请帮忙。 谢谢 问题是foreach的 foreach (Button btn in myGrid.Children) 这样编写时,它会尝试将网格的所有子项强制转换为按钮。这是不可能的,因为有

我以前曾在一篇帖子上问过如何使用它。现在,我在
按钮旁边添加了额外的
图像
,以指示客户端的连接状态。我有两个
按钮
一个用于添加,另一个用于删除按钮
图像
。单击后,将出现一个
菜单out
,用于选择要删除的相应按钮。我的问题是我试图添加状态
图像
,但是当点击删除
按钮时,
菜单出现异常
,显示
系统。无效异常

我的代码如下; 请帮忙。 谢谢


问题是foreach的

foreach (Button btn in myGrid.Children)
这样编写时,它会尝试将
网格的所有子项强制转换为
按钮。这是不可能的,因为有些子项不是按钮。但是,您可以这样编写循环:

foreach (Button btn in myGrid.Children.OfType<Button>())
foreach(myGrid.Children.OfType()中的按钮btn)

类型的
LINQ扩展方法将只过滤可枚举的输入到给定类型的项。

问题在于
foreach

foreach (Button btn in myGrid.Children)
这样编写时,它会尝试将
网格的所有子项强制转换为
按钮。这是不可能的,因为有些子项不是按钮。但是,您可以这样编写循环:

foreach (Button btn in myGrid.Children.OfType<Button>())
foreach(myGrid.Children.OfType()中的按钮btn)

类型的
LINQ扩展方法将只对给定类型的项目过滤可枚举的输入。

是类型为
按钮的
myGrid
的所有子项吗

 foreach (Button btn in myGrid.Children)
否,因为
myGrid.Children.Add(stsImg)

当您尝试将
stsImg
作为
按钮
获取时,会出现该异常,因为
stsImg
不是
按钮
类型

您只需要过滤按钮

foreach (Button btn in myGrid.Children.OfType<Button>()){
// do stuff
}
foreach(myGrid.Children.OfType()中的按钮btn){
//做事
}

是否所有
myGrid
的子项都属于
按钮类型

 foreach (Button btn in myGrid.Children)
否,因为
myGrid.Children.Add(stsImg)

当您尝试将
stsImg
作为
按钮
获取时,会出现该异常,因为
stsImg
不是
按钮
类型

您只需要过滤按钮

foreach (Button btn in myGrid.Children.OfType<Button>()){
// do stuff
}
foreach(myGrid.Children.OfType()中的按钮btn){
//做事
}

非常感谢。:)很高兴它这么说:-)。如果它解决了问题,请考虑将答案标记为解决方案,以便问题被关闭。快乐编码!非常感谢。:)很高兴它这么说:-)。如果它解决了问题,请考虑将答案标记为解决方案,以便问题被关闭。快乐编码!