C# 为什么内联实例化和向StackPanel添加UserControl会覆盖现有内容?
如果我创建UserControls的实例,然后将它们添加到StackPanel,如下所示:C# 为什么内联实例化和向StackPanel添加UserControl会覆盖现有内容?,c#,wpf,user-controls,instantiation,stackpanel,C#,Wpf,User Controls,Instantiation,Stackpanel,如果我创建UserControls的实例,然后将它们添加到StackPanel,如下所示: var myUC1 = new MyUserControl(GetControlData<Quick_Box>()); var myUC2 = new MyUserControl(GetControlData<Quick_Star>()); myStackPanel.Children.Add(myUC1); myStackPanel.Children.Add(myUC2); va
var myUC1 = new MyUserControl(GetControlData<Quick_Box>());
var myUC2 = new MyUserControl(GetControlData<Quick_Star>());
myStackPanel.Children.Add(myUC1);
myStackPanel.Children.Add(myUC2);
var myUC1=newmyusercontrol(GetControlData());
var myUC2=新的MyUserControl(GetControlData());
myStackPanel.Children.Add(myUC1);
myStackPanel.Children.Add(myUC2);
我可以看到他们一个接一个地被添加。但是,如果我没有事先创建实例,并在将它们添加到StackPanel时尝试创建实例,如下所示:
myStackPanel.Children.Add(new MyUserControl(GetControlData<Quick_Box>()));
myStackPanel.Children.Add(new MyUserControl(GetControlData<Quick_Star>()));
myStackPanel.Children.Add(新的MyUserControl(GetControlData());
添加(新的MyUserControl(GetControlData());
第二个实例总是覆盖第一个实例。这是为什么?你能发布一个简短但完整的程序来演示这个问题吗?#这两段代码在功能上没有区别,除非你的
MyUserControl
或GetControlData
代码中有无法解释的东西。你说第二个实例“覆盖”了第一个实例,这是什么意思?你看到了什么导致你得出这个结论?您是否确认只有一个子控件(在Snoop或调试器中),或者在运行应用程序时只看到一个子控件,并且假设另一个子控件不存在?