2012-11-19 5 views
0

원하는 위치에 요소를 추가하고 추가하여 스택 패널 내부에서 두 자식을 교체하고 있습니다 (삽입 방법). 그러나 요소를 제거하고 추가하면 메모리 주소 문제가 발생하고 요소에 액세스하자마자 응용 프로그램이 중단됩니다. StackPanel에서 "제거 및 추가"를하지 않고도 바꿀 수있는 다른 방법이 있습니까?StackPanel에서 자식 순서를 변경 하시겠습니까? Win8

Win8 + XAML + C#.

코드 :

내가 stack_map의 첫 번째 인덱스 제로 인덱스에서 'SP'를 배치 할
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.Children.Remove(stack_listView); 
stack_map.Children.Insert(1, stack_listView); 

:

'mapPageInstance는'난 그냥 다음을 사용하십시오, 위의 StackPanel의 요소를 교환하려면 사용자 지정지도 클래스 (기본적으로지도)

+0

이 문제를 표시하는 코드를 게시 할 수있는 이름이 아닌 인덱스로 StackPanel의 항목에 계속 액세스 할 경우 스왑 후 문제/메모리 오류가 없도록해야합니까? 요소를 제거하고 다시 삽입해도 문제가 발생하지 않습니다. –

+0

편집 및 추가 된 스 니펫. – Suny

답변

0

의 인스턴스 , 스택 패널에 두 개 이상의 항목이 있음을 의미합니다.

당신이

+0

도 이런 식으로 작동하지 않습니다. 시뮬레이터의 터치 모드와 표면에서는 크래시가 발생하지만 데스크톱에서는 그렇지 않습니다. 이상합니다. 다른 제안이 있습니까? – Suny

관련 문제