我通过删除并在所需位置添加元素(插入方法)来交换堆栈面板中的两个子项。但是,一旦我访问元素,删除和添加元素会导致内存地址问题和应用程序崩溃swapped。在StackPanel没有“删除和添加”的情况下我还有其他任何方法可以实现交换吗?
的Win8 + XAML + C#。
代码段:
UIElementCollection children = stack_map.Children;
int i = children.IndexOf(stack_listView);
StackPanel sp = children[i] as StackPanel;
int j = children.IndexOf(mapPageInstance);
MapPage mp = children[j] as MapPage;
stack_map.Children.Remove(sp);
stack_map.Children.Insert(1, sp);
我想将'sp'从零索引定位到stack_map中的第一个索引。
'mapPageInstance'是自定义Map类的实例(基本上是地图)
答案 0 :(得分:0)
要交换上面堆栈面板中的元素,我只需使用以下内容:
stack_map.Children.Remove(stack_listView);
stack_map.Children.Insert(1, stack_listView);
当然,这意味着您的堆叠面板中有多个项目。
如果继续按名称而不是索引访问stackpanel项目,则交换后应该没有任何问题/内存错误