0

スタック パネル内の 2 つの子を、目的の位置で要素を削除して追加することで交換しています (挿入メソッド)。ただし、要素を削除して追加すると、メモリ アドレスの問題が発生し、スワップされた要素にアクセスするとすぐにアプリがクラッシュします。 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);

stack_map のゼロ インデックスから最初のインデックスまで「sp」を配置したいと考えています。

「mapPageInstance」は、カスタム マップ クラス (基本的にマップ) のインスタンスです。

4

1 に答える 1

0

上記のスタックパネルの要素を交換するには、次を使用します。

stack_map.Children.Remove(stack_listView);
stack_map.Children.Insert(1, stack_listView);

もちろん、スタックパネルに複数のアイテムがあることを意味します。

インデックスではなく名前でスタックパネル項目にアクセスし続ければ、スワップ後に問題やメモリ エラーは発生しないはずです。

于 2012-11-19T07:34:48.453 に答える