我想投WrapPanel铸造和使用结果在一行
wp = (WrapPanel)topSP.Children[0];
wp.Children.Add(txtB1);
,这样它看起来就像是
topSP.Children[0](WrapPanel).Add(txtB1);
这可能吗?
我想投WrapPanel铸造和使用结果在一行
wp = (WrapPanel)topSP.Children[0];
wp.Children.Add(txtB1);
,这样它看起来就像是
topSP.Children[0](WrapPanel).Add(txtB1);
这可能吗?
((WrapPanel)topSP.Children[0]).Children.Add(txtB1);
请注意,可能有更好的方法。但这应该工作。
裹投括号,你是好去 -
((WrapPanel)topSP.Children[0]).Children.Add(txtB1);
改变类型的另一种方法是这样的:
(topSP.Children[0] as WrapPanel).Children.Add(txtB1);
这是不一样的演员,仿佛topSP.Children[0]
不是WrapPanel
,这将抛出NullReferenceException
,如在那种情况下(topSP.Children[0] as WrapPanel) == null
。
真的吗? Downvoted?请仔细解释一下,为什么你低估了一个完全有效的答案? –
尽管我没有对任何东西(既不是你的也不是Rohits)投票,我认为你根据保罗的两个班轮失踪了一个'.Children'的等级。 – nvoigt
@nvoigt好的地方。看到你有同样的问题:-)解决了这个问题。然而,并不是简单的评论就足以让它得到修复。 –
是你可以,但性能和铸件的这一切的“链接”可以追空引用和索引超出范围异常时,会导致大量的工作。将它们保持在不同的行上,并检查是否存在空值和索引范围。
因此,即使这可能工作:
((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);
}
}
这种性能和铸件的“链接”追空引用时,可能会导致大量的工作并索引超出范围的例外。将它们保持在不同的行上,并检查是否存在空值和索引范围。 –