我想投射WrapPanel
wp = (WrapPanel)topSP.Children[0];
wp.Children.Add(txtB1);
所以它看起来像那样
topSP.Children[0](WrapPanel).Add(txtB1);
可能吗?
答案 0 :(得分:4)
((WrapPanel)topSP.Children[0]).Children.Add(txtB1);
请注意,可能有更好的方法。但这应该有用。
答案 1 :(得分:2)
是的,你可以,但所有这些'链接'当追逐空引用和索引超出范围异常时,属性和强制转换可能会导致很多工作。将它们保持在单独的行上并检查空值和索引范围。
即使这可能有效:
((WrapPanel)topSP.Children[0]).Children.Add(txtB1);
这样做更安全:
if(topSP.Children.Count > 0)
{
var wrapPanel = topSP.Children[0] as WrapPanel;
if(wrapPanel != null)
{
wrapPanel.Children.Add(txtB1);
}
}
答案 2 :(得分:1)
在括号中包裹,你很高兴 -
((WrapPanel)topSP.Children[0]).Children.Add(txtB1);
答案 3 :(得分:1)
另一种改变类型的方法是:
(topSP.Children[0] as WrapPanel).Children.Add(txtB1);
这与演员表不同,好像topSP.Children[0]
不是WrapPanel
,这会抛出NullReferenceException
,就像那个案例(topSP.Children[0] as WrapPanel) == null
一样。