Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么内联实例化和向StackPanel添加UserControl会覆盖现有内容?_C#_Wpf_User Controls_Instantiation_Stackpanel - Fatal编程技术网

C# 为什么内联实例化和向StackPanel添加UserControl会覆盖现有内容?

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

如果我创建UserControls的实例,然后将它们添加到StackPanel,如下所示:

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或调试器中),或者在运行应用程序时只看到一个子控件,并且假设另一个子控件不存在?